在熊猫中处理数据

时间:2020-07-02 17:00:09

标签: python pandas dataframe

那是我的数据库:

    Number        Name  Points Math  Points BG  Wish
0        1       Огнян           50         65   MT
1        2      Момчил           61         27   MT
2        3    Радослав           68         68   MT
3        4       Павел           28         16   MT
4       10      Виктор           67         76   MT
5       11       Петър           26         68   BT
6       12       Антон           64         58   BT
7       13       Васил           29         42   BT
8       20    Виктория           62         67   BT

那是我的代码:

df = pd.read_csv('Input_data.csv', encoding='utf-8-sig')
df['Total'] = df.iloc[:, 2:].sum(axis=1)
df = df.sort_values(['Total', 'Name'], ascending=[0, 1])
df_5.to_excel("BT RANKING_5.xlsx", encoding='utf-8-sig',  index=False)

我希望每个拥有Wish == MT的人都将“积分数学”列中的分数加倍。

我尝试过:

df.loc[df['Wish'] == 'MT', 'Points Math'] = df.loc[df['Points Math'] * 2] 

但这没用。我也试图做一个if语句,for循环,但它们也不起作用。 什么是合适的语法来执行逻辑?

1 个答案:

答案 0 :(得分:0)

使用此:

df['Points_Math'] = np.where(df['Wish'] == 'MT', df['Points Math'] * 2, df['Points Math'])

将创建'Points_Math'并获得预期结果的新列,或者您可以通过将'Points_Math'替换为'Points Math'

来覆盖