![](/img/trans.png)
[英]How can I iterate through different CSV files with Python/Pandas by first column and item value?
[英]How can I use python to iterate through multiple csv files and if a value is the same, update another value?
我正在嘗試遍歷幾個.csv文件,如果值相同,則將相關條目加起來。 如果值不相同,則將其添加為新行。
我當前的代碼是:
import pandas
s1011 = pandas.read_csv('goals/1011.csv', sep=',', usecols=(1,3,5))
s1011.dropna(how="all", inplace=True)
print s1011
s1112 = pandas.read_csv('goals/1112.csv', sep=',', usecols=(1,3,5))
s1112.dropna(how="all", inplace=True)
print s1112
s1213 = pandas.read_csv('goals/1213.csv', sep=',', usecols=(1,3,5))
s1213.dropna(how="all", inplace=True)
print s1213
目前,我對此了解不多。 它打印出3個標題,團隊,贊成和反對。 它打印出20支足球隊,他們進球數以及失球數。 我試過在python中使用merge ,但是它不適合,因為它只能制作一張大表。
我想做的是打開多個csv文件,遍歷列表,如果團隊相同,則將每個文件的目標和目標加在一起。 如果之前尚未輸入團隊 ,請添加新行並添加新條目。
使用python可以嗎?
編輯:
目前正在打印
反對隊
曼聯86 43
曼城83 45
切爾西89 39
等20個團隊。 因此,我想通過在多個賽季中為每個團隊增加目標數來更新贊成和反對條目。 由於每個賽季不會有20支球隊,因此如果以前沒有一支球隊加入聯賽,我想添加新的條目。
假設您具有以下csv:
df1
反對隊
曼聯86 43
曼城83 45
切爾西89 39
df2
反對隊
曼聯88 45
曼城85 47
ICantNameATeam 91 41
您可以先使用pandas.concat將它們堆疊:
df_concat = pandas.concat([df1, df2], axis=0)
這會給你:
df_concat
反對隊
曼聯86 43
曼城83 45
切爾西89 39
曼聯88 45
曼城85 47
ICantNameATeam 91 41
然后,您可以使用dataframe.groupby求和:
df_sum = df_concat.groupby('Team').sum().reset_index()
這將根據唯一的團隊名稱對數據框進行分組,並取每一列的總和。
這是一種方法:
df[For-total] = df[For-1011] + df[For-1112] + df[For-1213]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.