python - 将 csv 附加到用管道分隔的数据框行
问题描述
我以前是这样做的:
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')
解决方案
正如您所写,您希望连接 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
推荐阅读
- fortran - 执行带有阶跃校正的 Runge-Kutta 方法时的无限循环
- python - 如何解决特定字段.E304错误
- grep - Grep 查找以 " 后跟 10 位数字 ","" 开头的行
- jsp - 如何编码此 jsp 行。需要从 xss 扫描中清除
- ruby-on-rails - 如何在 Minitest 中模拟一系列方法
- python - Why does shuffling array 'A' also shuffle array 'B', but updating int 'a' doesn't update int 'b'?
- linux - 将我的 bash 脚本的输出存储在 .txt 文件中
- python - 使用 pandas 比较两列并更新更改的值并附加缺失值
- python - 带有过滤器的 Google Analytics API 事件跟踪
- oracle - oracle 中的合并查询抛出“ORA-01652:无法在表空间 TEMP 中将临时段扩展 64”