根据指定列中的字符串值条目是否包含子字符串来分隔熊猫数据框

深度:

假设我有以下数据框:

df = pd.DataFrame({'name':['a', 'b', 'c','d','e'], 'description':['vim2tests','vim2trial','vim3tests','vim3zip', 'vim4trial'], 'count':[4,5,6,7,8]})

我试图将其分成3个数据帧,其中包含“ description”条目包含“ vim2”,“ vim3”,“ vim4”子字符串的行。

有有效的方法吗?我可以实现一个for循环来查找所需行的索引,但这根本没有效率,而且我正在努力寻找如何做一个更好的方法。

Datanovice:

IIUC,只需创建一个条件列即可groupby使用str.extract

我们可以将数据框保存在字典中。

dfs = {group : data.drop('key',1) for group,data in 
                 df.assign(key=df['description'].str.extract('(vim\d+)'))\
                           .groupby('key')
}

print(dfs['vim3'])
  name description  count
2    c   vim3tests      6
3    d     vim3zip      7

print(dfs.keys())

dict_keys(['vim2', 'vim3', 'vim4'])

或anky的简单得多的解决方案-

dfs = dict(tuple(
           df.groupby(df['description'].str.extract('(vim\d+)'
                                        ,expand=False))
         ))

要么:

dict(iter(df.groupby(df['description'].str.extract('(vim\d+)',expand=False)))

print(dfs)

{'vim2':   name description  count
 0    a   vim2tests      4
 1    b   vim2trial      5,
 'vim3':   name description  count
 2    c   vim3tests      6
 3    d     vim3zip      7,
 'vim4':   name description  count
 4    e   vim4trial      8}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据数据框中的子字符串对列求和

根据名称包含列表中的字符串选择熊猫数据框列

熊猫数据框检查列是否包含另一列中存在的字符串

删除包含熊猫数据框同一列中的值的子字符串的行的最快方法

根据熊猫数据框中的另一列获取子字符串

熊猫数据框通过查找子字符串替换多列中的字符串

如何更新字符串的熊猫数据框列中的子字符串

检查数据框中的值是否包含字符串列表中的字符串

根据条件熊猫数据框列删除字符串

如果熊猫数据框中包含特定的子字符串,请替换该字符串

替换在熊猫的整个数据框中包含子字符串的整个字符串

如何查找存储在熊猫数据框列中的逗号分隔字符串中唯一值的数量?

Python-熊猫-根据其他列的值替换列中的字符串-处理子字符串

根据条件在熊猫数据框列中的特殊字符上拆分字符串

如何使用数据框和熊猫检查列中的字符串是否是另一列中的子字符串

根据子字符串对熊猫数据框列进行排序

如何替换熊猫数据框中的字符串中的子字符串

检查字符串是否在熊猫数据框中

如何根据 Pandas 数据框中以逗号分隔的每个值的长度拆分字符串?

如何根据列表从熊猫数据框中过滤子字符串?

如何使用熊猫打印仅选定的子字符串(包含在数据框列中)设置条件

根据字符串值列对熊猫数据框行进行排序

根据熊猫数据框中的值更新字符串中的值

如何根据熊猫数据框中的字符串值使用 where 条件?

具有逗号分隔的字符串条目的熊猫数据框,更改为唯一的逗号分隔的条目

熊猫根据其他列中的子字符串更改列值

通过在字符串值中查找子字符串来更改列值

替换所有在熊猫数据框中不包含特定字符串的值

如何从熊猫数据框中删除包含特定列中特定字符串的行?