python-3.x - 如何在不迭代每列的情况下将数据框附加到列顺序更改的 csv 文件中?
问题描述
我正在尝试将新数据帧迭代地附加到单个 CSV 文件中。问题是数据框总是具有相同的列名,但它们的顺序是随机的。目前,我正在使用以下代码将新数据附加到 csv 中:
with open(name+'.csv', 'a') as f:
df.to_csv(f, header=f.tell()==0)
但是当列顺序改变时这不起作用。它在不考虑标题的情况下保持附加值的顺序。例如。如果第一个数据帧 id [A,B,C,D] 和第二个数据帧中的列顺序为 [D,C,A,B],则 CSV 变为:
A,B,C,D
a,b,c,d
a,b,c,d
a,b,c,d
...
d,c,a,b
d,c,a,b
d,c,a,b
...
有什么建议么?
解决方案
使用reindex
功能
with open(name+'.csv', 'a') as f:
df.reindex(columns=list('ABCD')).to_csv(f, header=f.tell()==0)
推荐阅读
- java - 从片段中的json获取值
- javascript - ajax 和 json.parse 的问题
- apache-kafka - 保持 Kafka Producer 处于打开状态还是为每条消息创建一个新的 Producer 更好?
- r - 在 rgee 中使用 ee_extract 的图像统计信息?
- dialogflow-es - Dialogflow Messenger(测试版) - 它是否支持 Google 文档中的丰富响应?
- javascript - 代码停止执行而不抛出错误
- javascript - 如何使我的图片在我的 ejs 文件中可见?
- c++ - 扩展 std::vector 的功能
- 命名空间、组合或继承? - sql - 如何使用两个表中的数据创建视图
- php - CURL 仅更改一个值并保留其余的意外字符('='(代码 61)