如何提供标准输入来切片数据帧?

how to give standard input to slice a dataframe?

尝试通过选择列的特定值来切片数据帧:

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: []

如果使用 Python 3

,请尝试删除引号

我python 2.7 我输入 'foo'(带引号).. 它正在工作

但在 python 3.6 中它不起作用。 我删除了引号并输入了 foo。现在开始工作了