Python 3.x 如何使用pandas获取表格格式并导出到csv?
我是新来的熊猫。我想要一个表格的格式,我需要导出csv 我尝试的是: o_rg,o_gg,a_rg,a_gg是数组Python 3.x 如何使用pandas获取表格格式并导出到csv?,python-3.x,pandas,python-2.7,csv,export-to-csv,Python 3.x,Pandas,Python 2.7,Csv,Export To Csv,我是新来的熊猫。我想要一个表格的格式,我需要导出csv 我尝试的是: o_rg,o_gg,a_rg,a_gg是数组 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_comple
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'。。。可以存储在数组cases=[]
如何获得实际输出?使用自定义函数:
#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
请在数组中添加一些样本数据,以便我们重现问题,好吗?