在python的csv文件中查找最小值、最大值

2024-06-02 07:23:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出所有可能的速率组合的最小值,最大值,平均值。我有很多频率和频率(10个频率,10个频率)。我的csv文件看起来像:

Channel, Rate, Length, Frequency, Expected_Power, Measured_Power, Expected_Eq, Measured_Eq, 
A, 27, 1000, 100, 20, 20.16, <-23.0, -27.33,
A, 6, 1000, 100, 20, 20.12, <-23.0, -25.96,
A, 3, 1000, 100, 20, 20.05, <-23.0, -26.34,
A, 27, 1000, 101, 20, 20.11, <-23.0, -24.88,
A, 6, 1000, 101, 20, 20.26, <-23.0, -25.55,
A, 3, 1000, 101, 20, 20.08, <-23.0, -25.42,
B, 27, 1000, 100, 20, 20.5, <-23.0, -26.98,
B, 6, 1000, 100, 20, 20.21, <-23.0, -24.61,
B, 3, 1000, 100, 20, 20.17, <-23.0, -23.54,
...

我试过:

^{pr2}$

我可以找到最大值和最小值,但如何按特定通道、速率和频率对其进行排序?。任何帮助都将不胜感激。 预计测量出的_功率:

Chanel, Rate, Max, Min, Average,
A, 3, .., .., ..,
A, 6, .., .., ..,
., ., .., .., ..,
., ., .., .., ..,
., ., .., .., ..,
A, 27,.., .., .., 

B, 3, .., .., ..,
B, 6, .., .., ..,
., ., .., .., ..,
., ., .., .., ..,
., ., .., .., ..,
B, 27,.., .., .., 

Tags: 文件csvrate排序速率channellength频率
1条回答
网友
1楼 · 发布于 2024-06-02 07:23:11

我希望我明白你想要什么。你想得到Rate和{}的每一个组合的最小值、最大值和平均值,对吗?在

嗯,你可以很快地用熊猫来做:

import pandas as pd

data = pd.read_csv('data_file.csv')
grouped_measured_power = data.groupby([' Rate', ' Frequency'])[' Measured_Power']
min_measured_power_by_rate_and_freq = grouped_measured_power.min()
max_measured_power_by_rate_and_freq = grouped_measured_power.max()
average_measured_power_by_rate_and_freq = grouped_measured_power.mean()

就这样!请注意,我在列名前面加了一个空格,因为CSV文件中有空格,但您可能更喜欢格式化数据文件。在

下面是示例的输出

^{pr2}$

结果是一个多索引结构。。。你可能也想unstack it。在

编辑:

请记住,一次应用多个聚合函数实际上可以做得更好,因此可以:

import pandas as pd
import numpy as np

data = pd.read_csv('data_file.csv')
grouped_measured_power = data.groupby([' Rate', ' Frequency'])[' Measured_Power']
result = grouped_measured_power.aggregate({'min': np.min,
                                           'max': np.max,
                                           'average': np.mean})

你可以直接把所有的东西都集中起来:

> result
                  average    max    min
 Rate  Frequency                       
3     100          20.050  20.05  20.05
      101          20.080  20.08  20.08
6     100          20.165  20.21  20.12
      101          20.260  20.26  20.26
27    100          20.330  20.50  20.16
      101          20.110  20.11  20.11

相关问题 更多 >