工作中Pandas库的使用

函数

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 方法对每个组中的指定列计算均值,并将结果保存在新的 DataFrame df1 中。最后,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列的数据

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值