[英]pandas - add additional column to an existing csv file
我有 2 個文件需要填充相同的 csv 文件
為了給出上下文,目前,我有這個代碼以所需的方式打印 CSV code-1.py
當前現有添加:
array_all = {'Hand': alldata, 'Pose': face_position}
array_all = {k: pd.Series(v) for k, v in array_all.items()}
df = pd.DataFrame(array_all)
df.to_csv('test.csv',
mode='w',
header=True,
index=False)
手 | 姿勢 |
---|---|
不 | 靠背座椅 |
不 | 靠背座椅 |
現在我有 code-2.py
要添加的列:
df = pd.DataFrame(results)
df.to_csv('test.csv',
mode='a',
header=True,
index=False)
我想要做的是在右側添加一列 Desired Output:
手 | 姿勢 | 眼睛 |
---|---|---|
不 | 靠背座椅 | 剩下 |
不 | 靠背座椅 | 正確的 |
但是,目前我得到了這個,
實際 Output:
手 | 姿勢 |
---|---|
不 | 靠背座椅 |
不 | 靠背座椅 |
0 | |
正確的 | |
剩下 |
基本上,它附加到 CSV 的第一列此外,可以假設 code-2.py 將在 code-1.py 之后立即運行
感謝您對此的任何想法,謝謝!
您不能將 append 列添加到 csv 文件而不完全加載它(但是,您可以 append 行)。 使用pd.concat
:
pd.concat([pd.read_csv('test.csv'), df], axis=1) \
.to_csv('test.csv', header=True, index=False)
# test.csv before
Hand,Pose
No,Seating Back
No,Seating Back
# test.csv after
Hand,Pose,Eye
No,Seating Back,Left
No,Seating Back,Right
參考@Corralien的回答
我還遇到了一個問題,即每個額外的 append 都會記錄在一個新列中,如此處所示https://i.stack.imgur.com/08oTe.png
為了緩解這種情況,我修改了給定的答案並創建了一個額外的 csv 並使用它覆蓋了 csv ,如下所示:
pd.concat([pd.read_csv('test2.csv'), df], axis=1) \
.to_csv('test.csv', header=True, index=False)
df = (pd.read_csv("test.csv")).assign(Eyes=results)
df.to_csv('test.csv', header=True, index=False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.