我有个问题.一方面,我想过滤或 Select 我的数据帧,另一方面,我想只直接输出某些列.我什么也找不到(也许我遗漏了条款).是否有一个选项可以直接在一行中过滤Pandas ,同时只输出某些列?

import pandas as pd
d = {'id': [1, 2, 3, 4, 5, 1],
     'name': ['Max Power', 'Jessica', 'Xi', 'Jackson', 'Frank', 'Miller'],
     'secondName': ['Full', 'Miller', 'Hu', 'Johnny', 'High', 'Joachim'],
    }
df = pd.DataFrame(data=d)
display(df)

df_new = df[df['id'] == 1]
display(df_new[['id', 'name']])

# df_new = df[['id', 'name'], df['id'] == 1] # TypeError Name: id, dtype: bool)' is an invalid key

[OUT]

id  name    secondName
0   1   Max Power   Full
1   2   Jessica Miller
2   3   Xi  Hu
3   4   Jackson Johnny
4   5   Frank   High
5   1   Miller  Joachim
id  name
0   1   Max Power
5   1   Miller

我想要什么

df[df['id'] == 1, ['id','name']]
id  name
0   1   Max Power
5   1   Miller

推荐答案

使用DataFrame.loc-首先定义布尔掩码,然后列出列名称:

print(df.loc[df['id'] == 1, ['id','name']])
   id       name
0   1  Max Power
5   1     Miller

Python相关问答推荐

acme错误-Veritas错误:模块收件箱没有属性linear_util'

什么相当于pytorch中的numpy累积ufunc

如何在python xsModel库中定义一个可选[December]字段,以产生受约束的SON模式

如何在python polars中停止otherate(),当使用when()表达式时?

如果值发生变化,则列上的极性累积和

为什么抓取的HTML与浏览器判断的元素不同?

移动条情节旁边的半小提琴情节在海运

在ubuntu上安装dlib时出错

如何在UserSerializer中添加显式字段?

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

Pandas Loc Select 到NaN和值列表

寻找Regex模式返回与我当前函数类似的结果

在matplotlib中使用不同大小的标记顶部添加批注

基于Scipy插值法的三次样条系数

Pandas:填充行并删除重复项,但保留不同的值

ModuleNotFoundError:没有模块名为x时try 运行我的代码''

polars:有效的方法来应用函数过滤列的字符串

语法错误:文档. evaluate:表达式不是合法表达式

如何使用pytest在traceback中找到特定的异常

更新包含整数范围的列表中的第一个元素