首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按元组中的值对数据进行排序

按元组中的值对数据进行排序
EN

Stack Overflow用户
提问于 2022-02-16 15:55:20
回答 2查看 69关注 0票数 2

考虑一下这个数据:

代码语言:javascript
复制
     name  age                           scores
0   Alice    8                 (False, 0, 89.1)
1     Bob    7               (True, 136, 79.05)
2   Chuck    9                (True, 138, 75.0)
3   Daren   12               (True, 146, 77.25)
3   Elisa   13               (True, 146, 77.25)

现在,我想过滤dataframe,只包括那些在‘分数’元组的第一个位置上带有True的条目,以获得这个数据:

代码语言:javascript
复制
     name  age                           scores
1     Bob    7               (True, 136, 79.05)
2   Chuck    9                (True, 138, 75.0)
3   Daren   12               (True, 146, 77.25)
3   Elisa   13               (True, 146, 77.25)

我试过这两种方法:

代码语言:javascript
复制
df = df[df.scores[0] == True]

代码语言:javascript
复制
df = df.drop(df[df.scores[0] == False].index)

但我总是犯错误。有谁知道用元组中的值进行筛选的有效方法吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-16 16:05:15

您可以尝试使用Series.str

代码语言:javascript
复制
df.loc[df.scores.str[0]==True]
票数 3
EN

Stack Overflow用户

发布于 2022-02-16 16:00:05

错误的一个原因是因为df.score是Series,但是您正在尝试使用它,例如listtuple (例如,分数、scores1 .)。

为这个问题编辑,@Space Impact的答案更好(更快更容易)。

相反,您可以在这里使用lambda,如下所示:

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Chuck', 'Daren', 'Elisa'],
    'age': [8, 7, 9, 12, 13],
    'scores': [(False, 0, 89.1), (True, 136, 79.05), (True, 138, 75.0), (True, 146, 77.25), (True, 146, 77.25)],
})

print(df)
#    name  age              scores
#0  Alice    8    (False, 0, 89.1)
#1    Bob    7  (True, 136, 79.05)
#2  Chuck    9   (True, 138, 75.0)
#3  Daren   12  (True, 146, 77.25)
#4  Elisa   13  (True, 146, 77.25)

df2 = df[df['scores'].apply(lambda x: x[0])]

print(df2)
#    name  age              scores
#1    Bob    7  (True, 136, 79.05)
#2  Chuck    9   (True, 138, 75.0)
#3  Daren   12  (True, 146, 77.25)
#4  Elisa   13  (True, 146, 77.25)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71145079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档