2016-09-15 60 views
0

我想創建一個功能,允許用戶選擇一個範圍,它會打印出範圍內的數字。但是,我一直使用我的代碼獲取空的DataFrame。誰能幫我?Python,熊貓 - 我怎樣才能在數據範圍內打印某些東西?

`進口大熊貓作爲PD

if __name__ == "__main__": 
file_name = "sales_rossetti.xlsx"  

# Formatting numbers (e.g. $1,000,000) 
pd.options.display.float_format = '${:,.0f}'.format 

# Reading Excel file 
df = pd.read_excel(file_name, index_col = 0, convert_float = False) 
print ("Welcome to Rossetti's Sales program\n") 
print ("1) Search by State") 
print ("2) Search by Jan Sales") 
print ("3) Search by Q2 sales") 
print ("4) Exit") 

my_option = input ("Please select a menu option:") 


if (my_option=="2"): 
    my_columns = ["Name", "City", "State", "Jan"] 
    your_sales = input("please enter the minimum sale: ") 
    your_sales = input("please enter the maxium sale: ") 
    print (df[my_columns][df.Jan>int(your_sales)][df.Jan<int(your_sales)])` 
+0

那麼首先你使用相同變量爲你的最小和最大範圍值'your_sales'被覆蓋,所以你應該使用不同的變量,然後你想'print(df.loc [(df.Jan> int(min_sales))&(df.Jan EdChum

+0

您正在將最小和最大銷售額保存到同一變量。它必須是兩個不同的變量。 –

回答

0

你覆蓋your_sales變量,你重用它,所以你應該爲最小值和最大值PARAMS使用不同的變量名。然後,您需要使用loc和封閉使用括號和&and布爾值的數組你布爾條件產生適當的布爾面膜:

if (my_option=="2"): 
    my_columns = ["Name", "City", "State", "Jan"] 
    min_sales = input("please enter the minimum sale: ") 
    max_sales = input("please enter the maxium sale: ") 
    print (df.loc[(df.Jan > int(min_sales)) & (df.Jan < int(max_sales)), my_columns]) 

上面應該工作

+0

謝謝,我在找什麼。 –

+0

如果我的答案解決了你的問題,那麼你可以接受它,我的答案左上角會有一個空的刻度標記 – EdChum

相關問題