Python比较数据框列,并根据前缀替换为内容

时间:2018-12-17 18:15:28

标签: python csv dataframe match multiple-columns

对于使用python还是相对较新,并且遇到了一些问题。

我目前有一个小程序,用于提取csv文件,将其合并,将它们放入数据框,然后转换为excel。

我要做的是根据数据框列中值的前缀匹配“ Team”和“ Abrev”的值,然后用“ Abrev”列内容替换Team列。

Team         Games  Points  Abrev
Arsenal      38     87      ARS
Liverpool    38     80      LIV
Manchester   38     82      MAN
Newcastle    38     73      NEW

我希望它最终看起来像这样:

Team  Games  Points  
ARS   38     87      
LIV   38     80    
MAN   38     82      
NEW   38     73     

所以我在想的是,我需要一个for循环来遍历数据帧中的行数,然后我需要一种通过列Abrev中的前缀来比较内容的方法。如果前三个字母匹配,则替换,但是我不知道该怎么做,因为我尝试不对其进行硬编码。

有人可以帮我或指出正确的方向吗?

2 个答案:

答案 0 :(得分:0)

pandas是您要寻找的 将熊猫作为pd导入

df = pd.read_csv('input.csv')
df['team'] = df['Abrev']
df.drop('Abrev', axis=1, inplace=True)
df.to_excel('output.xls')

答案 1 :(得分:0)

您可以使用apply操作来获得所需的输出。

df = pd.read_csv('input.csv')
df['Team'] = df.apply(lambda row: row['Team'] if row['Team'][:3].upper()!= row['Abrev'] 
                       else row['Abrev'],axis=1)
df.drop('Abrev', axis=1, inplace=True)

这给您:

Team  Games  Points  
ARS   38     87      
LIV   38     80    
MAN   38     82      
NEW   38     73