函数
mean()
mean方法用于计算 DataFrame 或 Series 中数值数据的平均值。它可以应用于整个 DataFrame 或者特定的列。
df[df['a'] >= 0]['a'].mean()
# df[df['a'] >= 0] 筛选出DataFrame ' df '中a列值大于或等于0的所有行
# df[df['a'] >= 0]['a'] 在筛选出的行中,选取a列
# df[df['a'] >= 0]['a'].mean() 计算筛选出a列值的平均值,并返回该平均值
agg()
agg方法用于对 DataFrame 或 Series 执行多个聚合操作。
df.agg({'column1': 'mean', 'column2': ['min', 'max']})
# 这将计算 column1 的平均值,以及 column2 的最小值和最大值,并返回一个 DataFrame。
groupby()
groupby是 Pandas 库中用于分组数据的一个方法。通过groupby,可以根据一个或多个键将数据分组,然后对每个组应用聚合函数、转换函数或过滤函数。
import pandas as pd
# 创建示例数据
data = {
'acousticName': ['A', 'A', 'B', 'B'],
'noise_day': [1, 1, 2, 2],
'noise_night': [10, 10, 20, 20],
'ld': [100, 200, 300, 400],
'ln': [50, 60, 70, 80],
'ldn': [30, 40, 50, 60],
'month_avg': [10, 20, 30, 40],
'ld1': [15, 25, 35, 45],
'ln1': [5, 15, 25, 35],
'ldn1': [3, 13, 23, 33],
'month_avg1': [1, 2, 3, 4]
}
df = pd.DataFrame(data)
# 使用 groupby 和 agg 对数据进行分组和聚合
df1 = df.groupby(['acousticName', 'noise_day', 'noise_night']).agg(
{'ld': 'mean', 'ln': 'mean', 'ldn': 'mean', 'month_avg': 'mean', 'ld1': 'mean',
'ln1': 'mean', 'ldn1': 'mean', 'month_avg1': 'mean'})
# 重置索引
df1.reset_index(drop=False, inplace=True)
print(df1)
输出结果
acousticName noise_day noise_night ld ln ldn month_avg ld1 ln1 ldn1 month_avg1
0 A 1 10 150.0 55.0 35.0 15.0 20.0 10.0 8.0 1.5
1 B 2 20 350.0 75.0 55.0 35.0 40.0 30.0 28.0 3.5
说明:在这个示例中,
groupby
方法将数据按acousticName
,noise_day
,noise_night
进行分组,agg
方法对每个组中的指定列计算均值,并将结果保存在新的 DataFramedf1
中。最后,reset_index
方法将分组键重置为普通列。
reset_index()
reset_index
方法用于将 DataFrame 的索引重置为默认的整数索引,并且可以选择性地将现有索引添加为列。
import pandas as pd
# 创建示例数据
data = {
'acousticName': ['A', 'A', 'B', 'B'],
'noise_day': [1, 1, 2, 2],
'noise_night': [10, 10, 20, 20],
'ld': [100, 200, 300, 400],
'ln': [50, 60, 70, 80]
}
df = pd.DataFrame(data)
# 使用 groupby 和 agg 对数据进行分组和聚合
df_grouped = df.groupby(['acousticName', 'noise_day', 'noise_night']).agg(
{'ld': 'mean', 'ln': 'mean'})
print("分组和聚合后的 DataFrame:")
print(df_grouped)
# 重置索引
df_grouped_reset = df_grouped.reset_index()
print("\n重置索引后的 DataFrame:")
print(df_grouped_reset)
分组和聚合后的 DataFrame:
ld ln
acousticName noise_day noise_night
A 1 10 150.0 55.0
B 2 20 350.0 75.0
重置索引后的 DataFrame:
acousticName noise_day noise_night ld ln
0 A 1 10 150.0 55.0
1 B 2 20 350.0 75.0
loc()
loc是 Pandas 库中用于基于标签或布尔数组来访问和修改数据的方法。它主要通过标签索引来选择和操作 DataFrame 或 Series 的数据。
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data, index=['x', 'y', 'z'])
# 通过行和列的标签访问数据
print(df.loc['x', 'A']) # 输出:1
print(df.loc['y']) # 输出第二行的数据
print(df.loc[:, 'B']) # 输出B列的数据