如何使用 pandas 获取格式的表并导出到csv? [英] How to get a table in a format using pandas and export to csv?
本文介绍了如何使用 pandas 获取格式的表并导出到csv?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是熊猫新手.我想要一张表格,该表格需要导出csv格式.
I am new to pandas .I want the a table in a format which I need to export csv.
我尝试过的是:
o_rg,o_gg,a_rg,a_gg是数组
o_rg,o_gg,a_rg,a_gg are arrays
df1=pd.DataFrame({'RED':o_rg,'GREEN':o_gg})
df2=pd.DataFrame({'RED':a_rg,'RED':a_gg})
df=df1-(df2)
pop_complete = pd.concat([df, df1, df2], keys=["O-A", "O", "A"], axis=1)
pop_complete.index = ['A1','A3','A8']
df1 = pop_complete.stack(0)[['RED','GREEN']].reindex(["O", "A", "O-A"], axis=0, level=1)
df1.to_csv("OUT.CSV")
我得到的输出为:
RED GREEN
A1 O 14.0 14.0
A 14.0 12.0
O-A 0.0 2.0
A3 O 12.0 9.0
A 12.0 10.0
O-A 0.0 -1.0
A8 O 15.0 12.0
A 15.0 12.0
O-A 0.0 0.0
我真正想要的是:
RED GREEN
A1
O 14.0 14.0
A 14.0 12.0
O-A 0.0 2.0
A3
O 12.0 9.0
A 12.0 10.0
O-A 0.0 -1.0
A8
O 15.0 12.0
A 15.0 12.0
O-A 0.0 0.0
其中'A1','A3','A8'...可以存储在数组case = []中 如何获得实际输出?
where 'A1','A3','A8' ... can be stored in array cases=[] How to get the actual output?
推荐答案
使用自定义功能:
#from previous answer
df1 = pop_complete.stack(0)[['RED','GREEN']].reindex(["O", "A", "O-A"], axis=0, level=1)
print (df1)
RED GREEN
A1 O 14 14
A 14 14
O-A 0 0
A3 O 12 9
A 12 10
O-A 0 -1
A8 O 15 12
A 15 15
O-A 0 -3
如果需要所有数值:
def f(x):
df2 = pd.DataFrame(columns=x.columns,
index=pd.MultiIndex.from_tuples([(x.name, x.name)]))
return df2.append(x)
df3 = df1.groupby(level=0, group_keys=False).apply(f).reset_index(level=0, drop=True)
print (df3)
RED GREEN
A1 NaN NaN
O 14 14
A 14 14
O-A 0 0
A3 NaN NaN
O 12 9
A 12 10
O-A 0 -1
A8 NaN NaN
O 15 12
A 15 15
O-A 0 -3
如果需要空字符串:
def f(x):
df2 = pd.DataFrame('', columns=x.columns,
index=pd.MultiIndex.from_tuples([(x.name, x.name)]))
return df2.append(x)
df3 = df1.groupby(level=0, group_keys=False).apply(f).reset_index(level=0, drop=True)
print (df3)
RED GREEN
A1
O 14 14
A 14 14
O-A 0 0
A3
O 12 9
A 12 10
O-A 0 -1
A8
O 15 12
A 15 15
O-A 0 -3
这篇关于如何使用 pandas 获取格式的表并导出到csv?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文