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'>
浙公网安备 33010602011771号