pandas dataframe 首先将指定行非int数据类型的值赋值0,求指定行的和成为新的字段“总分”列,给出python3代码
时间: 2023-06-08 17:07:03 浏览: 198
可以使用pandas.DataFrame.dtypes获取每一列的数据类型,然后使用pandas.DataFrame.loc选择指定行,再使用pandas.DataFrame.apply和lambda表达式将指定行的非int数据类型赋值为0,最后使用pandas.DataFrame.sum(axis=1)计算各行的总分并作为新的一列添加到DataFrame中。
下面是Python3的代码示例:
```python
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'score1': [90, 'A', 80],
'score2': [70, 85, 'B']
})
# 选择需要操作的行
selected_rows = ['score1', 'score2']
# 将非int数据类型的值赋值为0
df.loc[:, selected_rows] = df.loc[:, selected_rows].apply(lambda x: pd.to_numeric(x, errors='coerce')).fillna(0)
# 计算总分
df['总分'] = df.loc[:, selected_rows].sum(axis=1)
# 输出结果
print(df)
```
输出结果为:
```
name score1 score2 总分
0 Alice 90.0 70.0 160.0
1 Bob 0.0 85.0 85.0
2 Charlie 80.0 0.0 80.0
```
阅读全文