簡體   English   中英

如何使用 pandas 編輯 a.CSV 中的特定列或行?

[英]How do I Edit A Certain Column or Row in a .CSV using pandas?

我目前正在從事一個涉及電子表格的項目。 我需要 append 到一個已經存在的 .csv 文件,並使用 pandas 將項目添加到特定的列和行。我知道如何在閱讀時找到特定的列和行: .loc.iloc 但是,我找不到寫入特定列和行的方法。

import pandas
item = 'melon'
WriteItems = pandas.DataFrame({
    'Item': [item]
})
WriteItems.to_csv('ItemLog.csv', mode='a', index=False, header=False)

寫入時,它總是將[item]放在其他數據(位於第一列)下方一行。 有沒有辦法寫 [item] say, 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)

如果你真的想要 append,我會這樣做:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM