不应为空的数据框为空

时间:2018-06-22 06:35:44

标签: python python-3.x pandas

代码:

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。这可能是关于错误之处的关键见解。

2 个答案:

答案 0 :(得分:0)

documentation之后,尝试以下代码段:

print(s.loc[s['Product']=='A'])

我不知道s.Product是否有效!

希望这会有所帮助。

欢呼

答案 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)