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'>