熊猫-根据其他列中的值将数据添加到列中

追求

所以我本质上已经明白了。.csv文件:

,year,team,tr_diff,ranking
0,2010,ADO Den Haag,3.9473684210526314,N/A
1,2011,ADO Den Haag,1.5120274914089347,N/A
2,2012,ADO Den Haag,-1.2320328542094456,N/A
3,2013,ADO Den Haag,-3.757828810020877,N/A

这是我的代码:

rankings = [('ADO Den Haag', 12, 2010), ('ADO Den Haag', 16, 2011), .... ('ADO Den Haag', 12, 2013)]

df = pd.read_csv('preliminary.csv')
for tuple in rankings:      
    df.loc[(df['team'] == tuple[0]) & (df['year'] == tuple[2]), 'ranking'] = tuple[1]

目标是找到一列具有正确的团队名称和年份的列,并在“ Ranking”列的该行中添加可以在元组的第二项中找到的排名。我怎样才能做到这一点?这段代码不会引发任何错误,但不能满足我的要求。我希望的行为是这样。

,year,team,tr_diff,ranking
0,2010,ADO Den Haag,3.9473684210526314,12
1,2011,ADO Den Haag,1.5120274914089347,16
2,2012,ADO Den Haag,-1.2320328542094456,14
3,2013,ADO Den Haag,-3.757828810020877,15
4,2014,ADO Den Haag,2.5974025974025974,11
5,2015,ADO Den Haag,3.4702549575070822,8
6,2016,ADO Den Haag,-4.3626448534424,12

我究竟做错了什么?

哈尔潘

您不需要遍历元组列表。使用.merge()代替。假设您rankings的每个条目都有一个条目,df您需要:

ranking_df = pd.DataFrame(rankings, columns=['team', 'ranking', 'year'])
new_df = df.drop(['ranking'], axis=1).merge(ranking_df, on=['team', 'year'], how='left')

输入:

     year   team             tr_diff    ranking
0   2010    ADO Den Haag    3.947368    NaN
1   2011    ADO Den Haag    1.512027    NaN
2   2012    ADO Den Haag    -1.232033   NaN
3   2013    ADO Den Haag    -3.757829   NaN

输出:

    year    team             tr_diff    ranking
0   2010    ADO Den Haag    3.947368    12.0
1   2011    ADO Den Haag    1.512027    16.0
2   2012    ADO Den Haag    -1.232033   NaN
3   2013    ADO Den Haag    -3.757829   NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个数据框重复的所有列值添加到其他熊猫中

根据另一列中的值将值添加到熊猫数据框的一列中

根据其他列值在熊猫中添加新列

大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

如何根据其他两列中的值在熊猫数据框中添加新列

根据其他数据集 - 熊猫添加具有重复值的列(按天将股票市场指数的数据添加到每个股票。)

大熊猫-根据变量将值添加到列中,并将标题添加到mutltiindex(header)中

熊猫在关联的字符串值处将列添加到新数据框中?

Python:将行添加到熊猫数据框中,数组作为列值而不是多行?

如何根据熊猫中的其他列添加新列?

根据其他数据框中的列值在熊猫数据框中创建列

根据熊猫其他列中的值移动列

根据其他列中的值填充熊猫列

根据熊猫中的其他列修改列数据

熊猫根据第二个df中的值将列添加到df中

根据数据框中的其他列更改熊猫数据框的列值

根据带有熊猫的其他列在列中添加随机值

根据熊猫中其他列的值添加具有唯一标识符的列

如何根据熊猫中的其他列映射值?

根据其他两列替换熊猫中的值

根据其他数据框列映射熊猫列中类别的值

根据熊猫数据框中其他列的条件和值创建新列

根据其他列值选择熊猫数据框中的列

熊猫如何使用.loc根据其他列中的值将列设置为NaN

如何将列添加到包含列值在熊猫中对应的组的名称的 DataFrame

熊猫:根据对应于该值的行数,将列中的值替换为“其他”

将滚动窗口添加到熊猫每行中的列

无法将熊猫数据框中的列添加到python中的mysql

根据其他列中给出的值在熊猫数据框上生成 n 数量的新行