2017-10-06 19 views
1

「a1.xlsx」、「a2.xlsx」、「a3.xlsx」、「a4.xlsx」のExcelファイルが4つあります ファイルの形式は同じ複数のデータフレームに列の値が存在するかどうかを確認

id code name 
1  100 abc 
2  200 zxc 
... ... ... 

私はパンダのデータフレームにこのファイルを読み込み、code列の同じ値が複数のExcelファイルに存在しているかいないかどうかを確認する必要があります。例えばa1.xlsxため

は次のようになります。

このようなものです。

code=100'a1.xlsx','a3.xlsx'に存在し、code=200は次のようになりますのみ'a1.xlsx'

最終データフレーム内に存在する場合:

code filename 
100 a1.xlsx,a3.xlsx 
200 a1.xlsx 
... .... 
and so on 

Iディレクトリ内のすべてのファイルを持っているし、ループ

を介してそれらを反復処理しようとしました
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]) 

どのように進めますか?どんなリード?

答えて

2

用途:

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() 
+1

ワーキング!受け入れるために9分以上待ちます:p – Shubham

関連する問題