【问题标题】:how to give standard input to slice a dataframe?如何提供标准输入来切片数据帧?
【发布时间】:2019-04-03 03:14:29
【问题描述】:

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

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 pandas dataframe slice stdin


    【解决方案1】:

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

    我python 2.7 我输入了“foo”(带引号)。它正在工作

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

    【讨论】:

    猜你喜欢
    • 2019-12-05
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 2012-02-01
    • 2019-10-29
    相关资源
    最近更新 更多