複数のCSVファイルを一緒に追加するにはどうすればいいですか?CSVファイルとパンダを組み合わせる方法(そして特定の列を追加する)
は、これまでのところ私が持っている:
import os
import pandas as pd
import glob
os.chdir('C:\...') # path to folder where all CSVs are stored
for f, i in zip(glob.glob('*.csv'), short_list):
df = pd.read_csv(f, header = None)
df.index = i * len(df)
dfs.append(df)
all_data = pd.concat(dfs, ignore_index=True)
これは、すべての特定の列を除いて、うまく動作します。 i
は、all_data
の列Aに入れたいstrings
のリストです。各列の各行ごとに1つの文字列。代わりに、多くの数値を返し、TypeError: Index(....) must be called witha collection of some kind
を返します。
予想される出力:
str1 file1entry1
str1 file1entry2
str1 file1entry3
str2 file2entry1
str2 file2entry2
str2 file2entry3
short_list = ['str1', 'str2', 'str3']
、およびfile1entery1, file2entry2... etc
は私が既に持っているCSVファイルから来ています。
解決策: 提案された解決策のように1行ですべてを取得することはできませんでしたが、正しい方向に私を指摘しました。
for f zip(glob.glob('*csv')):
df = pd.read_csv(f, header = None)
df = df.assign(id = os.path.basename(f)) # simpler than pulling from the array. Adds file name to each line.
dfs.append(df)
all_data = pd.concat(dfs)
'使用する必要はありません* LEN(DF)'。新しい列にスカラーを割り当てるとき、値はすべての行に適用されます。 – Parfait
ここで実際にパンダを使う必要はないことに注意してください。単純に 'csv'モジュールを使うことができます。 –