df表中多列str转为float乘和加计算生成新列
时间: 2024-10-19 15:04:58 浏览: 26
pandas使用apply多列生成一列数据的实例
在Pandas DataFrame中,如果你有多个字符串类型的列需要转换成浮点数(floating-point)并进行加法或乘法运算,你可以按照以下步骤操作:
1. 首先,你需要确保所有的字符串列可以转换为数字,通常意味着它们包含的是数值格式的数据。如果数据包含非数字字符,可以使用`pd.to_numeric()`函数尝试转换,它会返回`NaT`(Not a Number)对于无法转换的值。
```python
df = df.apply(pd.to_numeric, errors='coerce')
```
这里,`errors='coerce'`会让转换失败时将该值设为`NaN`(Not a Number)。
2. 确认所有目标列已经转换为浮点数后,你可以选择特定列进行加法或乘法操作。例如,如果你想对两列`col1`和`col2`求和,创建一个新的列`new_col_sum`,可以这样做:
```python
df['new_col_sum'] = df['col1'].astype(float) + df['col2'].astype(float)
```
类似地,如果你想乘法运算,替换加号即可:
```python
df['new_col_product'] = df['col1'].astype(float) * df['col2'].astype(float)
```
记得检查结果,因为`NaN`值会被保留,并在计算过程中可能出现错误。如果希望忽略`NaN`值,可以使用`fillna(0)`或`dropna()`等方法。
阅读全文