![](/img/trans.png)
[英]How can I take input from something the Console has printed in Python?
[英]Python, Pandas - How can I get something printed in a data range?
我想创建一个允许用户选择范围的函数,它将打印出该范围内的数字。 但是,我的代码不断获取空的DataFrame。 谁能帮我?
`将熊猫作为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)])`
重复使用时,您将覆盖your_sales
变量,因此,应为min和max参数使用不同的变量名称。 然后,您需要使用loc
生成适当的布尔掩码,并使用括号和&
to 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])
以上应该工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.