2017-03-16 54 views
2

我正在學習如何在python中使用熊貓來操作數據。我得到了以下腳本:df.query在Python中使用熊貓產生空結果

import pandas as pd 

df = pd.read_table("t.txt") #read in the file 
df.columns = [x.strip() for x in df.columns] #strip spaces in headers 
df = df.query('TLD == ".biz"')  #select the rows where TLD == ".biz" 
df.to_csv('t.txt', sep='\t') #write the output to a tab-separated file 

但輸出文件沒有記錄,只有標題。當我檢查使用

print.df 

之前的選擇,輸出是:

   TLD Length            Words \ 
0  .biz   5            ... 
1  .biz   4            ... 
2  .biz   5            ... 
3  .biz   5            ... 
4  .biz   3            ... 
5  .biz   3            ... 
6  .biz   6            ... 

所以我知道該列TLD具有與.BIZ值的行。我也試過:

>>> print(df.loc[df['TLD'] == '.biz']) 

但結果是

Empty DataFrame 

隨着我的專欄

的名單什麼我做錯了嗎?

回答

2

似乎有些空格都在那裏,所以需要通過strip其刪除:

print(df.loc[df['TLD'].str.strip() == '.biz']) 

df['TLD'] = df['TLD'].str.strip() 
df = df.query('TLD == ".biz"') 
+0

謝謝!出於好奇 - 你是如何認識到白色空間在那裏?對我的未經訓練的眼睛,它看起來都很好 – TomEus

+0

,因爲你刪除列中的空格,所以我認爲在數據中也是這樣;) – jezrael

+0

也許更簡單的刪除列中的空格是'df.columns = df.columns.str.strip()' – jezrael