l=[y for _,y in df.groupby(df.name.str.replace('\d+', ''))]
Out[207]:
l
[ name value
1 bob1 abc
2 bob3 def
6 bob5 pqr, name value
3 jake2 ghi
4 jake jkl, name value
5 sam1 mno]
# get set of names
names = set(df.name.str.replace('\d+', ''))
# make dictionary
dfs = {n: df[df.name.str.replace('\d+', '') == n] for n in names}
# {'jake': name value
# 3 jake2 ghi
# 4 jake jkl,
# 'bob': name value
# 1 bob1 abc
# 2 bob3 def
# 6 bob5 pqr,
# 'sam': name value
# 5 sam1 mno}
另一种方法是:
获取所有不同的值:
函数从字符串中删除数字thanks for this answer 获取名称的所有可能值:
^{pr2}$循环到这些值并拆分df:
数据框列表包含拆分的数据帧
IIUC公司
这很管用。注意,我的字典键是名字,因为这似乎是最合乎逻辑的。在
相关问题 更多 >
编程相关推荐