【发布时间】:2021-08-15 00:29:31
【问题描述】:
这是我的 CSV 文件:
name;sex;email
paul;male;paul@gmail.com
然后我尝试将这两个用户添加到 CSV:
import pandas
users = [
{'name': "john", 'sex' : 'male', 'email' : 'john@gmail.com'},
{'name': "yoko", 'sex' : 'female', 'email' : 'yoko@gmail.com'}
]
df = pd.DataFrame(users)
df.to_csv('users.csv', sep=';', mode='a', header=False, index=False)
但 Pandas 坚持要把 John 的信息写在 Paul 的台词上:
name;sex;email
paul;male;paul@gmail.comjohn;male;john@gmail.com
yoko;female;yoko@gmail.com
这是为什么呢?我们怎样才能给约翰自己的台词?请帮助我们!
【问题讨论】:
-
看起来您的原始 CSV 缺少最后一行末尾的尾随
\n。 -
你为什么使用熊猫?
-
Pandas 是强制性的,我有一个庞大的数据库。我知道“\n”可以解决问题,但我担心某些开发人员会放弃空行。我想知道是否没有更优雅的解决方案......
-
您是否尝试将文件读入 DataFrame,然后添加新行,然后写回文件?
-
看起来你必须继承一个 Pandas 类、DataFrame 或 DataFrameRenderer 或 CSVFormatter 并自己滚动。或者使用换行符创建一个 io.StringIO 对象并将其传递给 to_csv 然后将其写入文件。如果您将 cmets 添加到代码中,并带有关于删除换行符添加的警告,并且 开发人员 仍然没有注意到该警告,那么您的原因就丢失了。
标签: python pandas csv dictionary