繁体   English   中英

Pandas Dataframe - 将列乘以一个值

[英]Pandas Dataframe - multiply column by a value

我正在尝试识别包含字母“k”的列,从星级评级列中删除“k”并将结果乘以 5。

当我乘法时,不是乘以列值,而是将值重复 5 次。

我试过以其他方式相乘(使用 numpy,使用 * 相乘)但得到的结果相同。

有什么建议么? 代码图像:[ 1 ]

df_starrating ['StarRating'] = ['1.1k stars','900 stars','2.5k stars']

df_starrating['StarRating'] = df_starrating['StarRating'].str.replace('stars','')

if df_starrating['StarRating'].str.contains('k').any():
df_starrating['StarRating'] = df_starrating['StarRating'].str.replace('k','')
df_starrating['StarRating'] = df_starrating['StarRating'].multiply(5,axis = 'index')

Output:

1.1k, 1.1k, 1.1k, 1.1k, 1.1k

900,900,900,900,900

2.5,2.5,2.5,2.5,2.5

您可以使用.apply(function)方法。 这样的事情应该有效:

def reformat(s):
    if s.find('k')!=-1
        s=s.replace('k', '')
return float(s)*5

df_starrating['StarRating'] = df_starrating['StarRating'].apply(reformat)

我相信你正在乘以一个字符串。 首先尝试转换为浮点数,例如

df_starrating['StarRating'] = df_starrating['StarRating'].astype(float).multiply(5,axis = 'index')

暂无
暂无

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

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