2016-09-15 7 views
0

ユーザーが範囲を選択できるような関数を作成し、その範囲内の数値を出力するとします。しかし、私は自分のコードで空のDataFrameを取得し続けています。誰でも助けてくれますか?Python、Pandas - データの範囲で何かを印刷するにはどうすればよいですか?

`あなたはそれを再利用しているとして、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

を動作するはずです:あなたは、その後locを使用して、括弧とandから&ブール値の配列を使用して、ブール条件を囲む適切なブール値マスクを生成する必要がありますあなたの最小値と最大値の変数 'your_sales'を上書きしていますので、あなたは' print(df.loc [(df.Jan> int(min_sales))&(df.Jan EdChum

+0

最小値と最大値を同じ変数に保存します。それは2つの異なる変数でなければなりません。 –

答えて

0

として輸入パンダはあなたがyour_sales変数を上書きしているので、あなたは、最小と最大のparamsのために別の変数名を使用する必要があります。

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

関連する問題