python pandas分割DataFrame中的字符串及元组的方法实现

作者:侯小啾 时间:2022-09-10 09:30:14 

1.使用str.split()方法

可以使用pandas 内置的 str.split() 方法实现分割字符串类型的数据,并将分割结果写入DataFrame中,以表格形式呈现。

语法:

Series.str.split(pat=None, n=-1, expand=False)

其中,pat是字符串或正则表达式,
n是一个整数数字,默认为-1。为0或-1时即为最大次数的分割。其他数值因数值而定。
expand为布尔类型,表示分割后是否转换为DataFrame。默认为False表示不转换。

首先准备一组DataFrame数据:

import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)
address = ['重庆 重庆市 南岸区 ',
          '江苏省 苏州市 吴江区 吴江经济技术开发区亨通路',
          '江苏省 苏州市 园区 苏州市工业园区唯亭镇阳澄湖大道维纳阳光花园',
          '重庆 重庆市 南岸区 长生桥镇茶园新区长电路',
          '安徽省 滁州市 明光市 三界镇中心街10001号',
          '山东省 潍坊市 寿光市 圣城街道潍坊科技学院',
          '吉林省 长春市 二道区 东盛街道彩虹风景',
          '福建省 厦门市 湖里区 江头街道厦门市湖里区祥店福满园小区',
          '山西省 吕梁市 离石区 滨河街道山西省吕梁市离石区后瓦师巷',
          '河南省 濮阳市 华龙区 中原路街道中原路与107国道交叉口东',
          '广东省 深圳市 宝安区 松岗街道松岗镇潭头第二工业区',
          '河北省 石家庄市 辛集市 辛集镇辛集市新皮革城7期125楼',
          '广东省 深圳市 宝安区 松岗街道松岗镇潭头第二工业区',
          '贵州省 贵阳市 花溪区 党武镇师范大学师大超市',
          '广东省 深圳市 福田区 沙头街道上沙龙秋村五十巷',
          '福建省 福州市 闽侯县 上街镇福州闽侯上街国宾大道',
          '湖北省 鄂州市 鄂城区 西山街道江碧路和馨居',
          '上海 上海市 松江区',
          '山东省 青岛市 市北区',
          '山西省 晋中市 灵石县',
          '浙江省 杭州市 余杭区']
df = pd.DataFrame()
df['address'] = address
print(df)

原数据示例如下:

python pandas分割DataFrame中的字符串及元组的方法实现

将address分割成不同的地理级别,结果生成一个DataFrame对象:

print("=======================================================================")
df1 = df['address'].str.split(' ', expand=True)
print(df1)

结果如下:

python pandas分割DataFrame中的字符串及元组的方法实现

最后将结果放入原DataFrame中。

df['省'] = series[0]
df['市'] = series[1]
df['区'] = series[2]
df = df[['省', '市', '区']]
print(df)

python pandas分割DataFrame中的字符串及元组的方法实现

2.使用join()与split()方法结合

import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)
address = ['重庆 重庆市 南岸区 ',
          '江苏省 苏州市 吴江区 吴江经济技术开发区亨通路',
          '江苏省 苏州市 园区 苏州市工业园区唯亭镇阳澄湖大道维纳阳光花园',
          '重庆 重庆市 南岸区 长生桥镇茶园新区长电路',
          '安徽省 滁州市 明光市 三界镇中心街10001号',
          '山东省 潍坊市 寿光市 圣城街道潍坊科技学院',
          '吉林省 长春市 二道区 东盛街道彩虹风景',
          '福建省 厦门市 湖里区 江头街道厦门市湖里区祥店福满园小区',
          '山西省 吕梁市 离石区 滨河街道山西省吕梁市离石区后瓦师巷',
          '河南省 濮阳市 华龙区 中原路街道中原路与107国道交叉口东',
          '广东省 深圳市 宝安区 松岗街道松岗镇潭头第二工业区',
          '河北省 石家庄市 辛集市 辛集镇辛集市新皮革城7期125楼',
          '广东省 深圳市 宝安区 松岗街道松岗镇潭头第二工业区',
          '贵州省 贵阳市 花溪区 党武镇师范大学师大超市',
          '广东省 深圳市 福田区 沙头街道上沙龙秋村五十巷',
          '福建省 福州市 闽侯县 上街镇福州闽侯上街国宾大道',
          '湖北省 鄂州市 鄂城区 西山街道江碧路和馨居',
          '上海 上海市 松江区',
          '山东省 青岛市 市北区',
          '山西省 晋中市 灵石县',
          '浙江省 杭州市 余杭区']
df = pd.DataFrame()
df['address'] = address
df = df.join(df['address'].str.split(' ', expand=True))
print(df)

运行结果同上。

3. 使用apply方法分割元组

使用apply方法,将某个元素类型为元组的列,将其元组中的元素拆分为不同的列。

import pandas as pd

df = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]})
print(df)
df[['b1', 'b2']] = df['b'].apply(pd.Series)
print(df)

python pandas分割DataFrame中的字符串及元组的方法实现

或者也可以这样写:

import pandas as pd

df = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]})
print(df)

df = df.join(df['b'].apply(pd.Series))
print(df)

python pandas分割DataFrame中的字符串及元组的方法实现

参考资源: python数据分析从入门到精通 明日科技编著 清华大学出版社

来源:https://skylarkprogramming.blog.csdn.net/article/details/123353821

标签:python,DataFrame,分割
0
投稿

猜你喜欢

  • Python爬虫实现“盗取”微信好友信息的方法分析

    2023-01-16 09:37:33
  • 网站如何使用黄金分割布局

    2010-11-05 18:34:00
  • 使用 Python 实现简单的 switch/case 语句的方法

    2021-02-02 09:10:16
  • java URL 获取PHP JSON 数据

    2023-11-14 18:02:02
  • 巧用SQL链接服务器访问远程Access数据库

    2008-11-28 16:32:00
  • ASP转化ip地址为长整型数字

    2008-04-06 14:23:00
  • MySQL安全性指南(3)(转)

    2010-07-26 13:07:00
  • 使用Python的turtle模块画国旗

    2021-10-22 12:31:10
  • python 实现的车牌识别项目

    2023-09-02 07:27:48
  • Golang中goroutine和channel使用介绍深入分析

    2023-07-07 16:51:48
  • PyQt Qt Designer工具的布局管理详解

    2023-09-21 04:44:17
  • Python format函数详谈

    2023-12-24 03:57:59
  • python 爬取华为应用市场评论

    2023-08-31 23:18:32
  • python获取网页中所有图片并筛选指定分辨率的方法

    2021-07-28 04:57:23
  • asp中InstrRev的语法

    2008-01-22 18:14:00
  • 寻找Dreamweaver鲜为人知的小秘诀

    2008-04-28 12:10:00
  • Js过滤空格的实现代码

    2010-08-20 09:38:58
  • 客户端JavaScript代码封装

    2008-12-26 18:10:00
  • python实现磁盘日志清理的示例

    2021-05-10 07:08:21
  • Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中

    2023-07-19 04:13:23
  • asp之家 网络编程 m.aspxhome.com