繁体   English   中英

如何将 pandas dataframe 中的特定行乘以条件

[英]How to multiply a specific row in pandas dataframe by a condition

我有一列是第 10 个标记,但某些特定行没有正确缩放,即它们超出 10 个。我想创建一个 function 来帮助我检测哪些是 <=10,然后乘以 100。我尝试通过创建一个 function 但它失败了。 以下是列: 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

我不是你所说的“乘以 100”是什么意思,但你应该能够使用与 lambda 类似的应用:

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 function 中的操作和条件替换为您的目的。

看起来您需要先更改数据类型data["10th"] = pd.to_numeric(data["10th"])我假设您想乘以 10 而不是 100 以将其与 100 个分数中的另一个进行缩放。 你可以试试这个np.where(data["10th"]<10, data["10th"]*10, data["10th"])

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM