我有一个dataframe,有30个栏位对应30个量测点,有30行数据对应每个量测点的量测值,现在我需要对每一列都求取平均值,标准差,最大值,最小值以及上中下四分位还有前5大量测值,分别作为一行数据加在dataframe里面
时间: 2024-03-16 08:43:10 浏览: 63
好的,您可以使用 `pandas` 库来计算您所需要的这些统计量。以下是一个示例代码:
```python
import pandas as pd
import numpy as np
# 创建一个示例 dataframe
df = pd.DataFrame(np.random.randn(30, 30), columns=['col{}'.format(i+1) for i in range(30)])
# 计算每列的平均值、标准差、最大值、最小值和四分位数
mean = df.mean()
std = df.std()
max_val = df.max()
min_val = df.min()
q1 = df.quantile(0.25)
q2 = df.quantile(0.5)
q3 = df.quantile(0.75)
# 计算前5大量测值
top5 = df.apply(lambda x: x.nlargest(5).tolist(), axis=0).transpose()
top5.columns = ['top{}'.format(i+1) for i in range(5)]
# 将所有统计量合并成一个 dataframe,并以一行的形式添加到原 dataframe 中
stats = pd.concat([mean, std, max_val, min_val, q1, q2, q3, top5]).transpose()
stats.columns = ['mean', 'std', 'max', 'min', 'q1', 'q2', 'q3', 'top1', 'top2', 'top3', 'top4', 'top5']
df = df.append(stats, ignore_index=True)
# 打印 dataframe
print(df)
```
这段代码将会给您一个包含所有所需统计量的新行作为 dataframe 的最后一行。
阅读全文