【问题标题】:Finding The Row Of A Pandas Dataframe When Searching With A Variable In a Column PROBLEM使用列问题中的变量搜索时查找 Pandas 数据框的行
【发布时间】:2022-01-25 01:31:20
【问题描述】:

我有一个导入到 pandas df 的 csv 文件。可以说是这样的

#      A      B  C   D
# 0  foo    one  0   0
# 1  bar    one  1   2
# 2  foo    two  2   4
# 3  bar  three  3   6
# 4  foo    two  4   8
# 5  bar    two  5  10
# 6  foo    one  6  12
# 7  foo  three  7  14

当我使用“foo”搜索时没有问题,下面的语句按预期工作。

print(df.loc[df['A'] == 'foo'])

但是当我使用“变量 x”而不是“foo”在 A 列中搜索时,它不会返回任何内容。

print(df.loc[df['A'] == variablex])
print(df.loc[df['A'] == 'variablex'])

我该如何解决这个问题。非常感谢您的帮助。

【问题讨论】:

  • 检查list(df) 以查看'variablex' 是否确实是列名。可能会有空格,例如' variablex''variablex '
  • @Serge variablex 我猜这里是一个项目,但因此可能意味着该项目不存在,或者如你所说,拼写错误
  • 检查了 'variablex' 或 'variablex' 但似乎不是问题
  • 在你的例子中,variablex 等于什么?
  • 这是一个单词,例如“课程”

标签: python pandas dataframe


【解决方案1】:

你的意思是这样的?:

df = pd.DataFrame([
    ("foo","one",0,0),
    ("bar","one",1,2),
    ("foo","two",2,4),
    ("bar","three",3,6),
    ("foo","two",4,8),
    ("bar","two",5,10),
    ("foo","one",6,12),
    ("foo","three",7,14),
], columns = ["A","B","C","D"])


variablex = "foo"
print(df.loc[df["A"] == variablex])

输出:

     A      B  C   D
0  foo    one  0   0
2  foo    two  2   4
4  foo    two  4   8
6  foo    one  6  12
7  foo  three  7  14

我不确定我是否了解问题所在,因此不确定我们是否已回答您的问题。

【讨论】:

  • 是的,实际上我昨天解决了这个问题,正如你所说的 print(df.loc[df["A"] == variablex]) 和 print(df.loc[df['A'] = = 变量x]) 工作。由于某种原因,它以前不起作用,也许是因为我从 Csv 加载了表格并且某处出现了错误。谢谢。
猜你喜欢
  • 1970-01-01
  • 2022-10-12
  • 2019-10-02
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
相关资源
最近更新 更多