Pandas_排序+字符串处理

排序

# 1)Series排序
df['aqi'].sort_values() # 升序
df['aqi'].sort_values(ascending=False) # 降序
# 2)DataFrame的排序
# 2.1)单列排序:
df.sort_values(by='aqi') # 升序
df.sort_values(by='aqi', ascending=False) # 降序
# 2.1)多列排序:
df.sort_values(by=['aqiLevel', 'bWendu']) # 两个字段都是升序
df.sort_values(by=['aqiLevel', 'bWendu'], ascending=False) # 两个字段都是升序
df.sort_values(by=['aqiLevel', 'bWendu'], ascending=[True, False]) # 分别指定生序和降序

字符串处理

# str属性为Series的!!!
# 1)获取Series的str属性:
df['bWendu'].str
df['bWendu'].str.replace('度', '') # 字符串替换
df['bWendu'].str.isnumeric() # 判断是不是数字
df['aqi'].str.len() # 计算长度
# 2)使用str的startswith,contains得到的bool的Series可以做条件查询
condition = df['ymd'].str.startswith('2018-01')
# 3)需要多次str处理的链式操作
# 如果提取201801这样的数字月份?
# 先将日期2018-01-31替换成20180131
df['ymd'].str.replace('-', '') # 再进行切片
df['ymd'].str.replace('-', '').str.slice(0, 6) # 注意必须先转换成字符串
# 或者下面的方法进行切片
df['ymd'].str.replace('-', '').str[0:6] # 切片
# 4)使用正则表达式的处理
def get_year_month_day(d):
year, month, day = d['ymd'].split('-') # 根据 - 进行分割
return f'{year}{month}{day}日' # 格式化
df['中文日期'] = df.apply(get_year_month_day, axis=1)
# 5)如何将2018年12月31日中的年月日三个中文字符去除?
# 5.1)方法1:链式replace
df['中文日期'].str.replace('年', '').str.replace('月', '').str.replace('日','')
# 5.2)方法2:正则表达式替换
df['中文日期'].str.replace('[年月日]', '')
posted @   aall_blue  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示