如何提供标准输入来切片数据帧?
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。现在开始工作了
尝试通过选择列的特定值来切片数据帧:
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。现在开始工作了