Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用pandas获取表格格式并导出到csv?_Python 3.x_Pandas_Python 2.7_Csv_Export To Csv - Fatal编程技术网

Python 3.x 如何使用pandas获取表格格式并导出到csv?

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

我是新来的熊猫。我想要一个表格的格式,我需要导出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_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

请在数组中添加一些样本数据,以便我们重现问题,好吗?