我目前正在做一个涉及电子表格的项目。我需要追加到一个已经存在的。csv文件,并添加项目到特定的列和行使用熊猫。我知道如何在阅读时找到某些列和行:.loc
或.iloc
。但是,我无法找到写入的方法。到特定的列和行。
import pandas
item = 'melon'
WriteItems = pandas.DataFrame({
'Item': [item]
})
WriteItems.to_csv('ItemLog.csv', mode='a', index=False, header=False)
写入时,它总是将[item]
放在其他数据(在第一列中)的下一行。有没有一种方法来写[项目],比如at (3,3)?
我从这个问题的答案中得到这个想法:
import pandas
item = 'melon'
data = pandas.read_csv('ItemLog.csv')
row = data.iloc[3, 1].to_numpy()
row.append([Item])
但是得到了这个错误:
Traceback (most recent call last):
File "path/to/my/script", line 46, in <module>
row = data.iloc[3, 1].to_numpy()
AttributeError: 'numpy.int64' object has no attribute 'to_numpy'
如果您要任意修改某些单元格,那么读取CSV,修改它,然后覆盖它,将是最简单的。
import pandas as pd
item = 'melon'
data = pd.read_csv('ItemLog.csv')
data.iat[3, 1] = item
data.to_csv('ItemLog.csv', index=False)
如果你真的想要追加,我会这样做:
df = pandas.DataFrame({
'Item': [item]
})
data = pd.read_csv('ItemLog.csv', nrows=0)
data = pd.concat([data, df])
data.to_csv('ItemLog.csv', mode='a', index=False, header=False)