使用数据帧/系列字符串提取方法时,结果是
series
的 series
。如何在不迭代行的情况下压平它并删除内部系列对象?
df = DataFrame({"a": ["asf cat llma 3X dog elepnt", "cat dog child monkey 5X sljka", "fsdjkl; dsfaa"]})
sr = df[df.a.str.contains("[3-6]X", na=False)].a.str.extract("([3-6]X)")
# sr is a series of series
[type(sr.iloc[i]) for i in range(sr.shape[0])]
# --> [<class 'pandas.core.series.Series'>, <class 'pandas.core.series.Series'>]
# I can add the expand parameter to no effect
sr = df[df.a.str.contains("[3-6]X", na=False)].a.str.extract("([3-6]X)", expand=True)
[type(sr.iloc[i]) for i in range(sr.shape[0])]
# --> [<class 'pandas.core.series.Series'>, <class 'pandas.core.series.Series'>]
IIUC,
sr = df[df.a.str.contains("[3-6]X", na=False)].a.str.extract("([3-6]X)", expand=False)
[type(sr.iloc[i]) for i in range(sr.shape[0])]
输出:
[str, str]