Series.str方法

1 对dataframe的某一列用str处理后,其类型是<class 'pandas.core.strings.StringMethods'>.可以对df.['列名'].str直接进行切片操作.

如下实现了将df中某列的字符串分割,后生成新的df.用apply函数也可以实现如下功能,但非常慢.

参考:https://blog.csdn.net/yueyao121107/article/details/79730934

df = pd.DataFrame({'appid':['a00140327#a00170298#a00184278#a00187480',
                            'a00158535#a00163116#a00170432#a00187480#a00224345',
                            'a00109386#a00170432#a0021880#a00244790#a00247567',
                            'a00170298#a00203358#a00275200']})
df = df.head(2)
print(df)
# df = df['appid'].str.split('#', expand=True).stack().reset_index(level=1, drop=True)
df = df['appid'].str
df = df.split('#', expand=True)         # 参数expand,这个参数取True时,会把切割出来的内容当做一列,产生多列,否则切换出来的是一个list
df = df.stack()
df = df.reset_index(level=1,drop=True)  # 将索引的第一列置位普通列,并删除.
print(df)
print(type(df))
#                                                appid
# 0            a00140327#a00170298#a00184278#a00187480
# 1  a00158535#a00163116#a00170432#a00187480#a00224345
# 0    a00140327
# 0    a00170298
# 0    a00184278
# 0    a00187480
# 1    a00158535
# 1    a00163116
# 1    a00170432
# 1    a00187480
# 1    a00224345
# dtype: object
# <class 'pandas.core.series.Series'>

 

posted on 2019-06-13 17:02  吃我一枪  阅读(1566)  评论(0编辑  收藏  举报

导航