如何使用python迭代多个csv文件,如果一个值相同,则更新另一个值?

2024-09-29 22:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试遍历几个.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中我尝试过了,但它并不适合使用。在

我要做的是打开多个csv文件,遍历列表,如果团队是相同的,将每个文件中的goals for和goals count相加。如果以前没有输入过团队,请使用新条目添加新行。在

使用python是否可以做到这一点?在

编辑:

它现在打印出来了

Team For Against

Man Utd 86 43

Man City 83 45

Chelsea 89 39

等20队。所以我想通过增加每个球队在几个赛季的进球数来更新支持和反对的条目。因为每个赛季都不会有相同的20支球队,如果一支球队以前没有进入过联赛,我想增加一排新的参赛队伍。在


Tags: 文件csvtruepandasread条目allsep
2条回答

假设您有以下csv:

df1

Team For Against

Man Utd 86 43

Man City 83 45

Chelsea 89 39

df2

Team For Against

Man Utd 88 45

Man City 85 47

ICantNameATeam 91 41

您可以先使用熊猫海螺公司名称:

df_concat = pandas.concat([df1, df2], axis=0)

这会给你:

df_concat

Team For Against

Man Utd 86 43

Man City 83 45

Chelsea 89 39

Man Utd 88 45

Man City 85 47

ICantNameATeam 91 41

然后你可以使用数据帧.groupby计算总数:

^{pr2}$

这将根据唯一的团队名称对数据帧进行分组,并取每列的总和。在

有一种方法:

  1. 使用Pandas将文件的标识号附加到每个数据帧(即For-1011、For-1112、For-1213)的For&after列。在
  2. 在“Team”上使用完全外部联接将所有行引入到新的数据帧中。在
  3. 根据需要对列求和:df[For-total] = df[For-1011] + df[For-1112] + df[For-1213]

相关问题 更多 >

    热门问题