我有一个名称列表,其中包含10张纸的1个excel文件。 我正在使用conda 2.7的熊猫。
文件中的列(相同的列名):
每个工作表的名称都是前面提到的名称列表的子集。
我需要做的是输出1张1页的文件。每张纸的结构都需要像这样:
名称列表| value_sheet1 | value_sheet2 | ... | value_sheet10 | summed_values
我需要遍历每张纸,并根据以下条件提取与名称相关的值: [名称列表] = [名称]
例如:
list of names = ["Jack","Jill","Doe"]
工作表1:
name | col1 | col2 | value
Jack | .. | .. | 10
Doe | .. | .. | 15
sheet2:
name | col1 | col2 | value
Jill | .. | .. | 10
Doe | .. | .. | 15
输出表:
name | value_sheet1 | value_sheet2 | ... | summed_value
Jack | 10 | 0 | .. | 10
Doe | 15 | 15 | .. | 30
Jill | 0 | 10 | .. | 10
感谢您的帮助!
谢谢。
答案 0 :(得分:1)
更新更多工作表
l=[df1,df2]
l=[y.set_index('name').add_prefix('sheet'+str(x+1)+'_') for x,y in enumerate(l)]
df=pd.concat(l,axis=1,sort=False)
df['New']=df.filter(like='value').sum(1)
df
Out[485]:
sheet1_value sheet2_value New
Jack 10.0 NaN 10.0
Doe 15.0 15.0 30.0
Jill NaN 10.0 10.0
如何创建dfs的list
xl = pd.ExcelFile(fn)
d={name:xl.parse(name) for name in xl.sheet_names}
l=d.values()