我有一个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
有没有办法摆脱空单元?
答案 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')
要保存到文件:
df_master.to_csv('mytextfile.txt', sep='\t')