使用管道分隔的数据框行附加csv

时间:2019-02-22 22:16:39

标签: python python-3.x pandas

我以前是这样做的:

dfx.to_csv('test.csv', index=None, sep='|')

我想将该文件附加另一个数据框。这是我的尝试:

with open('test.csv','a') as fd:
        fd.write(str(dfx.iloc[0]))

我要附加到csv的新数据帧中只有一行数据,并且需要用管道定界。

编辑:什么也没发生

EDIT2:我必须向现有的csv添加一行。 CSV是完全独立创建的。我在这里显示了它,所以您知道我是如何创建它的,以便可以正确地附加它,而不是因为它是在同一脚本等中发生的。

EDIT3:这为我提供了我想附加的内容:

s = dfx.iloc[0]
print(s.str.cat(sep='|'))

但这并没有按预期添加:

with open('test.csv','a') as fd:
            fd.write(str(s))

EDIT4:这可行:

        # Save periodicity to csv the first time
#         dfx.to_csv('test.csv', index=None, sep='|')

        # append the csv
        s = dfx.iloc[0]
#         print(s.str.cat(sep='|'))
        s = s.str.cat(sep='|')
        with open('test.csv','a') as fd:
            fd.write(str(s) + '\n')

1 个答案:

答案 0 :(得分:0)

如您所写,我想连接csv文件,我建议:

import io
import pandas as pd
df=pd.read_csv(io.StringIO("x,y,z\n1,2,3\n4,5,6\n"))
df2=pd.read_csv(io.StringIO("x,y,z\n4,6,4\n5,5,5\n"))

with open('/tmp/the_csv', 'w') as f:
    f.write(df.to_csv(index=False,header=True, sep='|'))

with open('/tmp/the_csv', 'a') as f:
    f.write(df.to_csv(index=False,header=False, sep='|'))

检查内容:

!cat /tmp/the_csv

x|y|z
1|2|3
4|5|6
1|2|3
4|5|6