看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)原始表 raw
含空格、千位符、缺日期列:
import pandas as pd
raw = pd.DataFrame({
"渠道": [" 抖音 ", "快手", " 微信 "],
"gmv": ["1,200", "800", "1,500"],
"date": ["2024-08-01", "2024-08-02", "2024-08-03"]
})
'''
渠道 gmv date
0 抖音 1,200 2024-08-01
1 快手 800 2024-08-02
2 微信 1,500 2024-08-03
'''
把以下 三步 各写成独立函数,然后用 一行 pipe()
串起来,返回干净 DataFrame:
strip_spaces(df)
→ 去空格gmv_to_int(df)
→ 把 gmv
转 int64add_gmv_k(df)
→ 新增 gmv_k = gmv/1000
函数定义:
def strip_spaces(df):
return df.map(lambda x: x.strip()
if isinstance(x, str)
else x
)
def gmv_to_int(df):
return df.assign(gmv=df['gmv']
.str.replace(',', '')
.astype('int64')
)
def add_gmv_k(df):
return df.assign(gmv_k=df['gmv'] / 1000)
管道调用:
(
raw
.pipe(strip_spaces)
.pipe(gmv_to_int)
.pipe(add_gmv_k)
)
输出:
渠道 date gmv gmv_k
0 抖音 2024-08-01 1200 1.2
1 快手 2024-08-02 800 0.8
2 微信 2024-08-03 1500 1.5
(完)
更新时间:2025-08-22 21:07:06 标签:pandas python 预订 批量