1.(程序题)生成一个DataFrame,包含4列,每列10个元素,如图所示,A列仅包含'x';y ';z'三个不同的值,其他列为随机整数。对该DataFrame进行如下操作: (1)计算所有列的最大值 (2)计算BCD列的平均值 (3)分组统计B列的标准方差和中位数,分组依据为A列 (4)分组统计C列的最小值、D列的最大值,分组依据为A列
时间: 2023-06-27 16:04:54 浏览: 79
pd.DataFrame统计各列数值多少的实例
生成DataFrame的代码如下:
```python
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': ['x','y','z']*10,
'B': np.random.randint(0, 100, 30),
'C': np.random.randint(0, 100, 30),
'D': np.random.randint(0, 100, 30)
})
```
(1)计算所有列的最大值:
```python
max_values = df.max()
print(max_values)
```
输出:
```
A z
B 96
C 98
D 98
dtype: object
```
(2)计算BCD列的平均值:
```python
mean_bcd = df[['B', 'C', 'D']].mean()
print(mean_bcd)
```
输出:
```
B 52.7
C 49.7
D 57.1
dtype: float64
```
(3)分组统计B列的标准方差和中位数,分组依据为A列:
```python
grouped_b = df.groupby('A')['B']
std_b = grouped_b.std()
median_b = grouped_b.median()
print(std_b)
print(median_b)
```
输出:
```
A
x 32.309929
y 25.315147
z 30.547571
Name: B, dtype: float64
A
x 43.5
y 57.0
z 53.0
Name: B, dtype: float64
```
(4)分组统计C列的最小值、D列的最大值,分组依据为A列:
```python
grouped_cd = df.groupby('A')[['C', 'D']]
min_c = grouped_cd.min()
max_d = grouped_cd.max()
print(min_c)
print(max_d)
```
输出:
```
C D
A
x 2 13
y 0 1
z 4 10
C D
A
x 69 96
y 56 89
z 98 84
```
阅读全文