基于pandas中expand的作用详解
1. 什么是expand
expand
是 pandas
库中的函数,该函数用于将序列单独拆分成列或行。
2. expand() 的基本使用方法
expand
函数的基本语法如下:
Series.str.expand(pat=None)
其中 Series
是需要进行拆分的字符串序列,pat
是用于标识分割位置的正则表达式或者特殊的字符串。
如果使用正则表达式,需要使用具有命名组的正则表达式组合,命名组必须对应列名。如果使用特殊字符串,则需要将特殊字符串与字符串序列的某个元素相比较。
3. 拆分为多列示例
下面是一个将序列拆分为多列的示例,具体实现过程如下:
import pandas as pd
data = pd.DataFrame({'location': ['Shanghai|Beijing', 'Guangzhou|Shenzhen', 'Chengdu|Chongqing']})
# 将 location 列按 | 拆分成两列, 并命名为 city1 和 city2
data[['city1', 'city2']] = data['location'].str.split('|', expand=True)
运行结果为:
location city1 city2
0 Shanghai|Beijing Shanghai Beijing
1 Guangzhou|Shenzhen Guangzhou Shenzhen
2 Chengdu|Chongqing Chengdu Chongqing
4. 拆分为多行示例
同时,expand
函数也可以将序列拆分成行,具体实现过程如下:
# 将 location 按 | 分割,然后将分割后的字符串序列拆分成单独的行
data_new = data['location'].str.split('|', expand=True).stack().reset_index(level=1, drop=True).rename('city')
# 合并 data 和 data_new,即可得到拆分后的完整 dataframe
data_new = data.join(data_new)
data_new = data_new.reset_index(drop=True)[['city']]
运行结果为:
city
0 Shanghai
0 Beijing
1 Guangzhou
1 Shenzhen
2 Chengdu
2 Chongqing
综上所述,expand
函数对字符串序列的拆分、转换等操作非常有用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于pandas中expand的作用详解 - Python技术站