Python 基于匹配的不同图纸/文件的总和值
我有一个名字列表,一个excel文件,里面有10张表格。 我正在使用conda 2.7的熊猫 文件中的列(相同的列名):Python 基于匹配的不同图纸/文件的总和值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个名字列表,一个excel文件,里面有10张表格。 我正在使用conda 2.7的熊猫 文件中的列(相同的列名): 名字 可乐 可乐 价值观 每张图纸都有名称,这些名称是前面提到的名称列表的子集 我需要做的是用一张纸输出一个文件。每张图纸的结构如下所示: 名称列表|值|表1 |值|表2 |……|值|表10 |总和|值 我需要一步一步地浏览每一页,并在以下条件下拉出与名称关联的值:[名称列表]=[名称] 例如: list of names = ["Jack","Jill","Doe"] 第
list of names = ["Jack","Jill","Doe"]
第1页:
name | col1 | col2 | value
Jack | .. | .. | 10
Doe | .. | .. | 15
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
第2页:
name | col1 | col2 | value
Jack | .. | .. | 10
Doe | .. | .. | 15
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
输出表:
name | col1 | col2 | value
Jack | .. | .. | 10
Doe | .. | .. | 15
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
感谢您的帮助
谢谢。更新更多工作表
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的列表
xl = pd.ExcelFile(fn)
d={name:xl.parse(name) for name in xl.sheet_names}
l=d.values()
嗯,如果我需要一步一步地检查每张表?(共10张)。我正在使用for循环逐步遍历工作表名称,然后在for循环中读入每张工作表。对不起,我仍然有点困惑。你能列出for循环在这里起作用的地方吗?我不明白df1和df2来自哪里。(我几天前才开始与熊猫合作)。我很感激你的回答。@lazycamper好的,那么你不知道如何将不同的表格读入熊猫?不,我有这个部分在工作。对于工作表名称中的工作表:df5=pd.read_excel(xls,str(sheet))@lazycamper我已经更新了dfs列表的来源:-)