代码:
s = pd.DataFrame(df)
print(s.head(3))
print(s.loc[s.Product=='A'])
输出:
Product Sales Date
---------------------------------------------------------------------
0 A 20 2017-5-16
1 A 60 2016-6-16
2 A 30 2015-6-16
Empty DataFrame
Columns: [Product, Sales, Date]
Index: [ ]
为什么在这种情况下数据帧为空? iloc
函数可以完美地工作,但是很麻烦,我不想将其用于185个具有31,000个数据点的产品。
是的,产品名称在右边输入。
我也尝试了isin
函数,该函数引发了相同的错误。
注意:类型为Series
,但我将其转换为DataFrame
。但是,即使在转换之后,它仍显示类型为Series
。这可能是关于错误之处的关键见解。
答案 0 :(得分:0)
答案 1 :(得分:0)
要消除空格,请尝试:
s['Product'] = s['Product'].str.replace('\s+','')
一旦您这样做,s[s['Product'] == 'A']
应该给您一些东西。
或者,如果要将空格保留在原始数据框中,则可以另设一列:
s['Product_nospace'] = s['Product'].str.replace('\s+','')
,然后从那里进行所有过滤。完成后,您可以删除该列:
s.drop(columns=['Product_nospace'], inplace=True)