根据许多列和值从数据框中获取行

这是一个非常简单的娱乐活动,尽管实际DF有更多列

我的数据框:

    length  width  height  age
0        1      5       8   12
1        1      5       8   12
2        1      5       8   21
3        1      5       8   15
4        1      5       8   15
5        1      6       9   12
6        2      6       9   32
7        2      6       9   32
8        2      6       7   98
9        3      4       7   12
10       3      4       7   54
11       3      4       7   21

我想从哪里得到的行width == 6 age ==32

很简单:

d[(d['width']==6) & (d['age']==32)]

   length  width  height  age
6       2      6       9   32
7       2      6       9   32

有没有办法使它自动化呢?假设我有一个列和值的列表。在这种情况下,它仍然仍然只有两个列/值,但是我正在考虑处理15个或更多:

cols = ['width','age']
vals = [6,32]

现在构建一个空的数据框并使用以下命令更新行append

df_temp = pd.DataFrame()

for col,val in zip(cols,vals):


    if df_temp.empty:

        df_temp = df[df[col]==val]

    else:

        df_temp.append(df[df[col]==val])


   length  width  height  age
5       1      6       9   12
6       2      6       9   32
7       2      6       9   32
8       2      6       7   98

这等效于使用or符号|

d[(d['width']==6) | (d['age']==32)]

我怎样才能做到这一点AND而不是自动化or呢?

我已经尝试了一些完全令人发指的方法,但是它没有用,它似乎仍然等同于|而不是&

[d[(d[col]==val) & (d[col]==val)] for col, val in zip(cols,vals)][0]

   length  width  height  age
5       1      6       9   12
6       2      6       9   32
7       2      6       9   32
8       2      6       7   98

我的可复制数据框:

import pandas as pd

pd.DataFrame({'length': pd.Series([1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1)), 'width': pd.Series([5, 5, 5, 5, 5, 6, 6, 6, 6, 4, 4, 4],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1)), 'height': pd.Series([8, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1)), 'age': pd.Series([12, 12, 21, 15, 15, 12, 32, 32, 98, 12, 54, 21],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1))}, index=pd.RangeIndex(start=0, stop=12, step=1))
亚图

我们可以通过在此处使用基础的numpy数组来简化此操作:

df[(df[cols].values == vals).all(1)] 

     length  width  height  age
6       2      6       9   32
7       2      6       9   32

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据列中的值返回数据框的行-R

来自分类Dev

根据pandas数据框中的多个列值选择行

来自分类Dev

根据列值在熊猫数据框中删除行

来自分类Dev

遍历df列并根据行索引,列引用在数据框中返回值

来自分类Dev

根据行索引值从pandas数据框列中求和

来自分类Dev

根据python中的值获取数组行和列号

来自分类Dev

根据列中的值过滤数据框的行

来自分类Dev

根据分类列中dinstict值的计数从pandas数据框中删除所有行

来自分类Dev

如果值在列数据框中,则熊猫获取行

来自分类Dev

根据数据框任何列中的值删除行

来自分类Dev

根据列的值和定界符拆分数据框中的所有列

来自分类Dev

根据指定列中的最小值从数据框中获取X行;并随机选择领带

来自分类Dev

根据单独数据框中的行和列值对数据框进行切片

来自分类Dev

根据值从熊猫数据框中的特定位置获取最后N行

来自分类Dev

根据列中的值从熊猫数据框中删除行

来自分类Dev

如何在熊猫数据框中仅获取具有给定值(或一组值)的行*和仅*列

来自分类Dev

R:如果行包含某个值(对于许多列),如何从数据框中删除行

来自分类Dev

根据列和行从数据框中获取值

来自分类Dev

根据另一个数据框的值删除一个数据框的行和列

来自分类Dev

遍历df列并根据行索引,列引用在数据框中返回值

来自分类Dev

根据行索引值从pandas数据框列中求和

来自分类Dev

根据列值合并数据框中的行值

来自分类Dev

根据行值从 Pandas 数据框中获取列表

来自分类Dev

根据列中的值复制 Spark 数据框中的行

来自分类Dev

根据熊猫数据框中其他列的条件和值创建新列

来自分类Dev

Pandas 数据框如何根据特定组和上一行值为列赋值

来自分类Dev

根据列值选择数据框的行

来自分类Dev

根据列的值和另一列中列表的长度对数据框进行排序

来自分类Dev

保留许多数据框行中的非空值

Related 相关文章

  1. 1

    根据列中的值返回数据框的行-R

  2. 2

    根据pandas数据框中的多个列值选择行

  3. 3

    根据列值在熊猫数据框中删除行

  4. 4

    遍历df列并根据行索引,列引用在数据框中返回值

  5. 5

    根据行索引值从pandas数据框列中求和

  6. 6

    根据python中的值获取数组行和列号

  7. 7

    根据列中的值过滤数据框的行

  8. 8

    根据分类列中dinstict值的计数从pandas数据框中删除所有行

  9. 9

    如果值在列数据框中,则熊猫获取行

  10. 10

    根据数据框任何列中的值删除行

  11. 11

    根据列的值和定界符拆分数据框中的所有列

  12. 12

    根据指定列中的最小值从数据框中获取X行;并随机选择领带

  13. 13

    根据单独数据框中的行和列值对数据框进行切片

  14. 14

    根据值从熊猫数据框中的特定位置获取最后N行

  15. 15

    根据列中的值从熊猫数据框中删除行

  16. 16

    如何在熊猫数据框中仅获取具有给定值(或一组值)的行*和仅*列

  17. 17

    R:如果行包含某个值(对于许多列),如何从数据框中删除行

  18. 18

    根据列和行从数据框中获取值

  19. 19

    根据另一个数据框的值删除一个数据框的行和列

  20. 20

    遍历df列并根据行索引,列引用在数据框中返回值

  21. 21

    根据行索引值从pandas数据框列中求和

  22. 22

    根据列值合并数据框中的行值

  23. 23

    根据行值从 Pandas 数据框中获取列表

  24. 24

    根据列中的值复制 Spark 数据框中的行

  25. 25

    根据熊猫数据框中其他列的条件和值创建新列

  26. 26

    Pandas 数据框如何根据特定组和上一行值为列赋值

  27. 27

    根据列值选择数据框的行

  28. 28

    根据列的值和另一列中列表的长度对数据框进行排序

  29. 29

    保留许多数据框行中的非空值

热门标签

归档