仅输出pandas中

时间:2017-11-28 17:41:31

标签: python pandas dataframe file-io

我有这个数据框

       X    Y   Z    A
0      1    2   0    4   
1      0    2   3    0 
2      1    0   3    4     
3      1    0   0    4  
4      1    0   0    0   

我想将其保存为具有此格式的文本文件(输出所有行但排除任何0列)

1,2,4
2,3
1,3,4
1,4
1

这可以通过for循环输出,但是对于大型数据帧来说效率非常低。有没有更快的方法呢?

2 个答案:

答案 0 :(得分:2)

In [103]: (df.astype(str)
     ...:    .replace('0','')
     ...:    .add(',')
     ...:    .sum(1)
     ...:    .replace([',{2,}',',$','^,'],[',','',''], regex=True))
     ...:
Out[103]:
0    1,2,4
1      2,3
2    1,3,4
3      1,4
4        1
dtype: object

答案 1 :(得分:2)

replace + str.cat

df.astype(str).replace('0',np.nan).apply(lambda x :x.str.cat(sep=','),1)
Out[525]: 
0    1,2,4
1      2,3
2    1,3,4
3      1,4
4        1
dtype: object