我有一列第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
答案 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"])