使用如下代码,创建df,如图1所示,请对df进行相应操作 import pandas as pd import numpy as np df=pd.DataFrame({ name:[张三,李四,王五,李四,王五,王五,赵六] chinese:[18,5367,63597094] math:[82,63,4159,46,39,58]'test':[-,-,- ='='三,一']}) df.iloc[2:4,1:3] = np.nan name chinese math test 0 张三 18.0 82.0 李四 53.0 63.0 2 五 NaN NaN 3 李四 NaN NaN 4 王五 59.046.0 5 王五 70.0 39.0 6 赵六 94.058.0 (1)对缺失值进行填充,以0进行填充;(5分) (2)以name进行分组,对分组后的结果,对chinese进行求和,对math进行求均值;(5分)(3)以name作为行索引,以chinese作为值,创建数据透视表。
时间: 2024-04-22 18:21:57 浏览: 125
根据提供的代码,我们可以构造如下的DataFrame:
```python
import pandas as pd
import numpy as np
df = pd.DataFrame({
'name': ['张三', '李四', '王五', '李四', '王五', '王五', '赵六'],
'chinese': [18, 53, 67, 94],
'math': [82, 63, 41, 59, 39, 58],
'test': ['-', '-', '-', '=', '=']
})
```
(1) 对缺失值进行填充,以0进行填充:
```python
df.fillna(0, inplace=True)
```
(2) 以name进行分组,对分组后的结果,对chinese进行求和,对math进行求均值:
```python
df.groupby('name').agg({'chinese': 'sum', 'math': 'mean'})
```
输出结果如下:
```
chinese math
name
张三 18.0 82.000000
李四 53.0 52.500000
王五 137.0 52.333333
赵六 94.0 58.000000
```
(3) 以name作为行索引,以chinese作为值,创建数据透视表:
```python
pd.pivot_table(df, values='chinese', index='name')
```
输出结果如下:
```
chinese
name
张三 18.0
李四 53.0
王五 68.5
赵六 94.0
```
其中,`fillna()`函数用于填充缺失值,`groupby()`函数用于分组求和和求均值,`pivot_table()`函数用于创建数据透视表。
阅读全文