Pandas使用apply函数给表格添加多列

import pandas as pd


# 文件路径
file_path = r'C:\TELCEL_MEXICO_BOT\A\Weather.csv'
df = pd.read_csv(file_path, sep=',')
print(df.head())
          ymd bWendu yWendu tianqi fengxiang fengji  aqi aqiInfo  aqiLevel
0  2025-01-01  -25°C   -6°C   晴~多云       西北风   1-2级   59       优         2
1  2025-01-02    2°C   -9°C      阴       东南风   3-4级   48       优         1
2  2025-01-03  -11°C   -2°C   晴~多云        西风   4-8级   28       良         1
3  2025-01-04    0°C   -4°C   晴~多云        东风   2-5级   30       良         1
4  2025-01-05    3°C   -1°C     小雨        东风   3-5级   25       良         1


df['bWendu'] = df['bWendu'].map(lambda x: int(str(x).replace('°C', '')))
df['yWendu'] = df['yWendu'].map(lambda x: int(str(x).replace('°C', '')))
print(df.head())
         ymd  bWendu  yWendu tianqi fengxiang fengji  aqi aqiInfo  aqiLevel
0  2025-01-01     -25      -6   晴~多云       西北风   1-2级   59       优         2
1  2025-01-02       2      -9      阴       东南风   3-4级   48       优         1
2  2025-01-03     -11      -2   晴~多云        西风   4-8级   28       良         1
3  2025-01-04       0      -4   晴~多云        东风   2-5级   30       良         1
4  2025-01-05       3      -1     小雨        东风   3-5级   25       良         1

## 同时添加温差以和当天的平均温度
df['temp_diff'] = df['bWendu'] - df['yWendu']

# 定义函数:计算温差和平均温度
def my_func(row):
    wench = row['bWendu'] - row['yWendu']  # 温差
    avg = (row['bWendu'] + row['yWendu']) / 2  # 平均温度
    return pd.Series([wench, avg], index=['wencha', 'avg'])

# 应用函数,并将结果赋值给新列
df[['wencha', 'avg']] = df.apply(my_func, axis=1, result_type='expand')

# 查看结果,打印前7行
print(df.head(7)
          ymd  bWendu  yWendu tianqi  ... aqiLevel temp_diff  wencha   avg
0  2025-01-01     -25      -6   晴~多云  ...        2       -19   -19.0 -15.5
1  2025-01-02       2      -9      阴  ...        1        11    11.0  -3.5
2  2025-01-03     -11      -2   晴~多云  ...        1        -9    -9.0  -6.5
3  2025-01-04       0      -4   晴~多云  ...        1         4     4.0  -2.0
4  2025-01-05       3      -1     小雨  ...        1         4     4.0   1.0
5  2025-01-06      10       3      阴  ...        1         7     7.0   6.5
6  2025-01-07       7     -10      阴  ...        1        17    17.0  -1.5

[7 rows x 12 columns]

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值