如何使用pandas编辑.CSV中的特定列或行?



我目前正在做一个涉及电子表格的项目。我需要追加到一个已经存在的。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)

相关内容

  • 没有找到相关文章

最新更新