我尝试组合大约70,000行的文件中的数据。对于几种类型的结果,我需要导出文件(例如csv类型)
导入后包含数据的文件返回此df:
df = pd.DataFrame({
'sec_Id':["to","ti","tu","ta","ty","te"],
'sec_Orga':['CNP','COF','COF','POS','POS','POS'],
'sec_Etat':['Sorti(e)','Valide','Suspendu(e)','Valide','Suspendu(e)','Suspendu(e)']
})
df
Out[59]:
sec_Etat sec_Id sec_Orga
0 Sorti(e) to CNP
1 Valide ti COF
2 Suspendu(e) tu COF
3 Valide ta POS
4 Suspendu(e) ty POS
5 Suspendu(e) te POS
最后我得到了这个总体结果:
Total Valide Suspendu(e) Sorti(e)
CNP 1 0 0 1
COF 2 1 1 0
POS 3 1 2 0
正如你所看到的,这是一个结合了“总数”的价值观。具有唯一值' sec_Etat"的列标题栏目......
我尝试使用groupby,unstake,pivot但没有任何效果......
之后我必须导出csv文件的数据......我怎么能这样做?
谢谢!
答案 0 :(得分:0)
使用pivot_table
方法。对于aggfunc
参数,请使用len
。这将返回所提供的index
和column
的项目计数。最后,只需对axis=1
的行进行求和。使用.to_csv
导出。
参见代码:
import pandas as pd
df = pd.DataFrame({
'sec_Id': ["to", "ti", "tu", "ta", "ty", "te"],
'sec_Orga': ['CNP', 'COF', 'COF', 'POS', 'POS', 'POS'],
'sec_Etat': ['Sorti(e)', 'Valide', 'Suspendu(e)', 'Valide', 'Suspendu(e)', 'Suspendu(e)']
})
pivot = df.pivot_table(index='sec_Orga', columns='sec_Etat', aggfunc=len)
pivot["total"] = pivot.sum(axis=1)
print pivot
# pivot.to_csv("p.csv") # Export to CSV file. Uncomment to use.