尝试通过选择列的特定值来切片数据帧:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
mask = df['A'] == 'foo'
df[mask]
这将找到完美的解决方案
A B C D
foo one 0 0
foo two 2 4
foo two 4 8
foo one 6 12
foo three 7 14
但是当尝试使用标准输入功能赋予价值时...我得到一个空的数据框。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
mask = df['A'] == input("enter: ")
输入:“ foo”
df[mask]
输出:
Empty DataFrame
Columns: [A, B, C, D]
Index: []
答案 0 :(得分:1)
如果使用Python 3,请尝试删除引号
我的Python 2.7 我输入了'foo'(带引号)..它可以正常工作
但是在python 3.6中它不起作用。 我删除了引号,然后输入foo。现在可以正常工作了