如何将熊猫数据框中的特定行乘以条件

时间:2020-05-23 13:21:04

标签: python pandas function dataframe data-manipulation

我有一列第10个标记,但是某些特定的行没有正确缩放,即它们超出了10。我想创建一个函数来帮助我检测哪些是<= 10,然后乘以100。通过创建一个函数尝试,但是失败了。 以下是专栏: data['10th']

0           0
1           0
2           0
3       10.00
4           0
        ...  
2163        0
2164        0
2165        0
2166    76.50
2167    64.60
Name: 10th, Length: 2168, dtype: object

2 个答案:

答案 0 :(得分:0)

我不是“乘以100”是什么意思,但是您应该可以使用lambda的apply与此类似:

df = pd.DataFrame({"a": [1, 3, 5, 23, 76, 43 ,12, 3 ,5]})
df['a'] = df['a'].apply(lambda x: x*100 if x < 10 else x)
print(df)

0   100
1   300
2   500
3   23
4   76
5   43
6   12
7   300
8   500

如果我对您的理解不正确,则可以按照自己的目的替换lambda函数中的操作和条件。

答案 1 :(得分:0)

好像您需要先更改数据类型data["10th"] = pd.to_numeric(data["10th"]) 我假设您想乘以10而不是100,以与其他100分的总和成比例。您可以尝试这个np.where(data["10th"]<10, data["10th"]*10, data["10th"])

使用将其分配回数据框。 data["10th"] = np.where(data["10th"]<10, data["10th"]*10, data["10th"])