我有一个CSV数据集,我试图选择“ INCOME”列等于“ <= 50K”或“> 50K”的所有行
这是我有什么,但它没有任何行只返回列名。
df.loc[df.INCOME == '>50K',:]
我的代码基本上说选择所有行“DF”的数据集的收入列等于“> 50K”
请帮忙吗?
答案 0 :(得分:2)
您可以使用
df.INCOME=df.INCOME.str.strip()
df.loc[df.INCOME == '>50K',:]
答案 1 :(得分:1)
@Wen已经展示了一个很好的答案,但是,您可以像在POST中最初希望的那样,尝试使用元素明智的运算符。
import fix_yahoo_finance as fyf
from pandas_datareader import data as web
fyf.pdr_override()
stock_list = sorted(['MOQ.AX', 'ONT.AX', '14D.AX', '1ST.AX', 'T3D.AX', 'TGP.AX'])
goog = web.get_data_yahoo(stock_list, start = '2018-01-01', end = '2019-12-31')['Adj Close']
14D.AX 1ST.AX MOQ.AX ONT.AX T3D.AX TGP.AX
Date
2018-01-01 NaN 0.049 0.23 6.594936 0.005 0.980018
2018-01-02 NaN 0.049 0.23 6.604564 0.005 0.970595
2018-01-03 NaN 0.053 0.23 6.546799 0.005 0.970595
2018-01-04 NaN 0.059 0.23 6.489032 0.005 0.998865
2018-01-07 NaN 0.060 0.23 6.450522 0.005 0.980018
>>> df
NUM INCOME CAP
0 1 20k 5
1 2 30k 9
2 8 50k 2
3 3 40k 7
4 6 50k 7
5 4 80k 3
6 8 20k 8
7 9 90k 10
8 6 60k 4
9 10 10k 7
:OR(|)
OR:
>>> df.loc[ (df['INCOME'] <='10k') | (df['INCOME'] >='50k') ]
NUM INCOME CAP
2 8 50k 2
4 6 50k 7
5 4 80k 3
7 9 90k 10
8 6 60k 4
9 10 10k 7