我以前是这样做的:
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')
答案 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