如何给标准输入切片数据帧?

时间:2018-10-30 05:55:58

标签: python pandas dataframe slice stdin

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

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

1 个答案:

答案 0 :(得分:1)

如果使用Python 3,请尝试删除引号

我的Python 2.7 我输入了'foo'(带引号)..它可以正常工作

但是在python 3.6中它不起作用。 我删除了引号,然后输入foo。现在可以正常工作了