私は4つのExcelファイルを持っています-'a1.xlsx '、' a2.xlsx '、' a3.xlsx '、' a4.xlsx 'ファイルの形式は同じです
たとえば、a1.xlsxは次のようになります。
id code name
1 100 abc
2 200 zxc
... ... ...
pandasデータフレームでこのファイルを読み取り、同じ値のcode
列が複数のExcelファイルに存在するかどうかを確認する必要があります。
このようなもの。
にcode=100
存在し'a1.xlsx','a3.xlsx'
、にcode=200
のみ存在する場合'a1.xlsx'
最終的なデータフレームは次のようになります。
code filename
100 a1.xlsx,a3.xlsx
200 a1.xlsx
... ....
and so on
ディレクトリにすべてのファイルがあり、ループを介してそれらを反復しようとしました
import pandas as pd
import os
x = next(os.walk('path/to/files/'))[2] #list all files in directory
os.chdir('path/to/files/')
for i in range (0,len(x)):
df = pd.read_excel(x[i])
どうやって進める?リードはありますか?
使用する:
import glob
#get all filenames
files = glob.glob('path/to/files/*.xlsx')
#list comprehension with assign new column for filenames
dfs = [pd.read_excel(fp).assign(filename=os.path.basename(fp).split('.')[0]) for fp in files]
#one big df from list of dfs
df = pd.concat(dfs, ignore_index=True)
#join all same codes
df1 = df.groupby('code')['filename'].apply(', '.join).reset_index()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加