Python:Pandas:将文本文件中的DataFrames索引保存为列

时间:2016-08-10 08:50:37

标签: python pandas

我有一个DataFrames df_list列表。我想写一个制表符分隔的文本文件:第一行是列表的索引。然后,每列都是DataFrame索引中的值。 index.values具有不同的长度。

0   1   2   3
i   i   i   i
n   n   n   .
d   d   .   .
e   .   .   .
x   .   .
.   .   
v
a
l
u
e
s

我试过了:

arrays = []
    for i in range(len(df_list)):
        arrays.append(df_list[i].index.values)
np.savetxt('clusters.txt', np.transpose(arrays))

但我明白了:TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')

当我使用时(piRSquared的回答):

df_master = pd.DataFrame({i: df.index.to_series() for i, df in enumerate(df_list)})
sorted_cols = df_master.notnull().sum().sort_values()[::-1].index
df_master[sorted_cols].to_csv('clusters.txt', sep='\t', index=None, float_format='%0.0f')

我举个例子:

  7     21

  D0EX67    



  E1MTY0    
  P00350    
        P00363
  P00370    


        P00452
        P00490

有没有办法摆脱空单元?

1 个答案:

答案 0 :(得分:2)

df_list = [pd.DataFrame(range(i)) for i in range(10, 15)]

df_master = pd.DataFrame({i: df.index.to_series() for i, df in enumerate(df_list)})
sorted_cols = df_master.notnull().sum().sort_values()[::-1].index

print df_master[sorted_cols].to_csv(sep='\t', index=None, float_format='%0.0f')

enter image description here

要保存到文件:

df_master.to_csv('mytextfile.txt', sep='\t')