pandas データ フレームのインデックスを削除または無効にするにはどうすればよいですか?
私は本「データ分析のためのpython」からパンダを学んでおり、dataframe.dropを使用して1列または1行をドロップできることをすでに知っています。しかし、すべてのインデックスを無効にすることについては何も見つかりませんでした。
d.index = range(len(d))
単純なインプレース インデックス リセットを実行します。つまり、既存のインデックスをすべて削除し、pandas データフレームが持つことができる最も基本的なインデックス タイプである基本的な整数型を追加します。
インデックスのない CSV から DataFrame を取得して別のファイルに書き戻そうとすると、同様の問題が発生しました。
私は次のことを思いつきました:
import pandas as pd
import os
def csv_to_df(csv_filepath):
# the read_table method allows you to set an index_col to False, from_csv does not
dataframe_conversion = pd.io.parsers.read_table(csv_filepath, sep='\t', header=0, index_col=False)
return dataframe_conversion
def df_to_excel(df):
from pandas import ExcelWriter
# Get the path and filename w/out extension
file_name = 'foo.xlsx'
# Add the above w/ .xslx
file_path = os.path.join('some/directory/', file_name)
# Write the file out
writer = ExcelWriter(file_path)
# index_label + index are set to `False` so that all the data starts on row
# index 1 and column labels (called headers by pandas) are all on row index 0.
df.to_excel(writer, 'Attributions Detail', index_label=False, index=False, header=True)
writer.save()
私はいくつかを助けるかもしれない機能を持っています。Pythonで次の方法でcsvファイルをヘッダーと結合します。
def combine_csvs(filedict, combined_file):
files = filedict['files']
df = pd.read_csv(files[0])
for file in files[1:]:
df = pd.concat([df, pd.read_csv(file)])
df.to_csv(combined_file, index=False)
return df
必要な数のファイルを使用できます。これを次のように呼び出します。
combine_csvs(dict(files=["file1.csv","file2.csv", "file3.csv"]), 'output.csv')
または、Python でデータフレームを次のように読み取っている場合:
df = combine_csvs(dict(files=["file1.csv","file2.csv"]), 'output.csv')
Combine_csvs 関数はインデックスを保存しません。インデックスが必要な場合は、代わりに「index=True」を使用してください。