首页 > 解决方案 > 对带有字符串的 Pandas DF 观察执行数值运算

问题描述

我有一个名为“price”的 DataFrame 列,其中包含价格,其格式为“pw”或“pcm”(例如“600pcm”)。

prices = {'price': ["100pw","600pcm","321pw"]}

df = DataFrame(prices,columns=['price'])

df.head()

我希望能够将所有价格转换为每周价格。

理想情况下,会有一个循环函数将 pcm 数量转换为 pw,但我必须在转换 int 之前删除字符串部分。

我尝试通过列表理解在数周和数月内制作新的价格列表,但我如何将它们与正确的行索引匹配?

还尝试了 np.where 功能,但似乎不合适。

有什么想法吗?我是python的新手

标签: pythonpandas

解决方案


def pcm_to_pw(x):
  return(3.14 * x)

convert_ = lambda x: pcm_to_pw(float(x[:-3])) if x.endswith('pcm') else float(x[:-2])

df['price'] = df['price'].apply(convert_)

当然,你需要调整pcm_to_pw功能,因为我不知道转换规则。


推荐阅读