首页 > 解决方案 > 如何在 pd.Dataframe 的每列值内进行操作?

问题描述

我有一个pandas Dataframe'final_data['130 + 71444']' ,我想在为单元格内的每个值进行以下数学运算之后将结果写入列:

final = pd.read_csv(path, header=0, parse_dates=True, index_col="Tagname")
final_data = pd.DataFrame(final)

在此处输入图像描述


编辑:我试过:

final_data['130 + 71444'] = (final_data['130.c'] + final_data['7144.c'])/final_data['c']

但是会显示以下错误:

TypeError: unsupported operand type(s) for /: 'str' and 'str'

我该怎么做?

标签: pythonpandasmathsumdivision

解决方案


利用:

final_data['130 + 71444'] = (final_data['130.c'].astype(float) + final_data['7144.c'].astype(float))/final_data['c'].astype(float)

如果上面的代码不起作用,因为某些非数值使用to_numericwitherriors='coerce'将这些值转换为缺失值:

final_data['130 + 71444'] = (pd.to_numeric(final_data['130.c'], errors='coerce') + pd.to_numeric(final_data['7144.c'], errors='coerce') )/pd.to_numeric(final_data['c'], errors='coerce') 

推荐阅读