pandas 教程

Pandas 数据结构

Pandas 基本操作

Pandas API

pandas DataFrame 根据某列的条件给另一个指定列进行赋值

Pandas DataFrame 常用操作及基本知识点详解 Pandas DataFrame 常用操作及基本知识点详解


pandas 的 DataFrame 矩阵数据对象如何根据某列的条件给另一个指定列进行赋值?

推荐方案

使用 DataFrame 对象的 loc 函数,具体如下示例:

import pandas as pd

data = {
    'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals',
             'Riders'],
    'Rank': [1, 2, 2, 3, 3, 4, 1, 1, 2, 4, 1, 2],
    'Year': [2014, 2015, 2014, 2015, 2014, 2015, 2016, 2017, 2016, 2014, 2015, 2017],
    'Points': [876, 789, 863, 673, 741, 812, 756, 788, 694, 701, 804, 690]
}
df = pd.DataFrame(data)

print(df)

df.loc[df['Team'] == 'Riders', 'Points'] = 1000

print(df)

Team 列等于 'Riders'Points 列设置值为 1000,输出如下:

    Team    Rank  Year  Points
0   Riders     1  2014     876
1   Riders     2  2015     789
2   Devils     2  2014     863
3   Devils     3  2015     673
4    Kings     3  2014     741
5    kings     4  2015     812
6    Kings     1  2016     756
7    Kings     1  2017     788
8   Riders     2  2016     694
9   Royals     4  2014     701
10  Royals     1  2015     804
11  Riders     2  2017     690
      Team  Rank  Year  Points
0   Riders     1  2014    1000
1   Riders     2  2015    1000
2   Devils     2  2014     863
3   Devils     3  2015     673
4    Kings     3  2014     741
5    kings     4  2015     812
6    Kings     1  2016     756
7    Kings     1  2017     788
8   Riders     2  2016    1000
9   Royals     4  2014     701
10  Royals     1  2015     804
11  Riders     2  2017    1000