您能否帮助我获得考虑两个工作表(员工薪金- Nov-22.CSV /员工薪金- Dec-22.CSV)的输出。我想在新的输出文件中获得每列的唯一名称值。
2izufjch1#
欢迎来到stackoverflow,你需要发布你迄今为止为解决这个问题所做的任何工作。为了回答你的问题,这可以做的是excel与透视表。但如果你正在寻找一个Pandas的方法...我已经创建了2个像你一样的数据框架
import pandas as pd import numpy as np df1 = pd.DataFrame( { "Name": ['Govind', 'Chetan', 'Rahul'], "City": ['Mumbai', 'Banglore', 'Pune'], "Salary": [1, 1, 1] }) df2 = pd.DataFrame( { "Name": ['Govind', 'Chetan', 'Kalpesh'], "City": ['Mumbai', 'Banglore', 'Pune'], "Salary": [1, 1, 1] })
然后可以使用concat将它们连接起来
df = pd.concat([df1, df2], axis=0) df
并且可以使用groupby()和reset_index()来获取所需的内容
df.groupby(['Name','City'])['Salary'].sum().reset_index()
v1l68za42#
您可以将pandas.read_excel与sheet_name=None结合使用,一次读取所有工作表,然后将生成的 Dataframe 字典传递给pandas.concat,最后使用Groupby.sum进行聚合:
pandas.read_excel
sheet_name=None
pandas.concat
Groupby.sum
import pandas as pd out = ( pd.concat(pd.read_excel("/input_spreadsheet.xlsx", sheet_name=None), ignore_index=True) .groupby(["Name", "City"], as_index=False)["Salary"].sum() )
之后,如果需要,可以使用pandas.DataFrame.to_excel创建新的电子表格和/或使用pandas.DataFrame.to_csv创建(.csv)文件:
pandas.DataFrame.to_excel
pandas.DataFrame.to_csv
.csv
out.to_excel("/output_spreadsheet.xlsx", sheet_name="Emp Salary (Total).xlsx", index=False) out.to_csv("/output_csvfile.csv", sheet_name="Emp Salary (Total).csv", sep=",", index=False) #sep="," by default
print(out) Name City Salary 0 Chetan Bangalore 60000 1 Dipesh Pune 50000 2 Govind Mumbai 200000 3 Kalpesh Kolkata 40000 4 Rahul Kolkata 40000 5 Santosh Pune 50000 6 Siddharth Hyderabad 50000
2条答案
按热度按时间2izufjch1#
欢迎来到stackoverflow,你需要发布你迄今为止为解决这个问题所做的任何工作。
为了回答你的问题,这可以做的是excel与透视表。但如果你正在寻找一个Pandas的方法...我已经创建了2个像你一样的数据框架
然后可以使用concat将它们连接起来
并且可以使用groupby()和reset_index()来获取所需的内容
v1l68za42#
您可以将
pandas.read_excel
与sheet_name=None
结合使用,一次读取所有工作表,然后将生成的 Dataframe 字典传递给pandas.concat
,最后使用Groupby.sum
进行聚合:之后,如果需要,可以使用
pandas.DataFrame.to_excel
创建新的电子表格和/或使用pandas.DataFrame.to_csv
创建(.csv
)文件:#输出: