Python 如何使用用户输入选择行列并返回单元格值?
我有一个从csv文件构造的熊猫数据框架 我要求用户输入两个值,用空格分隔 然后我尝试使用pandas.loc[,]返回该单元格值 如何将它们的输入与我的行列匹配,并只返回该单元格的原始值?Python中的不可能?到目前为止,我的程序在确定要查找哪个csv表以及如何将输入分配给变量方面运行良好。实际传递给图表查找的是无效的。下面是一些示例代码Python 如何使用用户输入选择行列并返回单元格值?,python,csv,pandas,input,lookup,Python,Csv,Pandas,Input,Lookup,我有一个从csv文件构造的熊猫数据框架 我要求用户输入两个值,用空格分隔 然后我尝试使用pandas.loc[,]返回该单元格值 如何将它们的输入与我的行列匹配,并只返回该单元格的原始值?Python中的不可能?到目前为止,我的程序在确定要查找哪个csv表以及如何将输入分配给变量方面运行良好。实际传递给图表查找的是无效的。下面是一些示例代码 import pandas as pd A_read = pd.read_csv('My.csv') A1 = pd.DataFrame(A_read)
import pandas as pd
A_read = pd.read_csv('My.csv')
A1 = pd.DataFrame(A_read)
A = A1.set_index("Years")
separator = ' '
user_input = raw_input("Enter two values: ").split(separator)
rank = user_input[0]
Years = int(user_input[1])
pay = A.loc[ , ] #problem area
我将输入的年份处理为一个整数,然后将其输入到一个排序表中,给它一个“超过0”或“超过5”等值。这个字符串与我索引中的术语相匹配,如这里的示例表所示。秩作为字符串输入,不做任何更改
Years E-9 E-8
Over 0 40 80
Over 2 30 20
我写了很多只是为了澄清!只需寻找任何接收输入并将其与行/列匹配以返回单元格的解决方案 让A
A = pd.DataFrame(
np.random.randint(10, size=(10, 10)),
list('abcdefghij'), list('ABCDEFGHIJ'))
A B C D E F G H I J
a 1 8 0 3 5 7 7 2 7 1
b 7 7 6 6 1 1 3 4 3 9
c 8 4 9 4 6 7 2 8 1 5
d 1 0 2 4 0 5 1 7 9 6
e 9 0 3 2 3 6 6 9 5 0
f 5 6 2 0 7 9 2 0 8 0
g 7 7 0 5 2 6 1 9 0 1
h 5 8 0 7 4 0 7 3 1 7
i 9 9 6 2 7 7 3 5 0 9
j 3 1 8 0 1 8 9 7 5 9
抓取用户输入。。。注意i
和j
的赋值。您进行了拆分
,但仅获取拆分中的第一个值
i, j = input('>>> ').split()
>>> i C
A.loc[i, j]
6
让A
A = pd.DataFrame(
np.random.randint(10, size=(10, 10)),
list('abcdefghij'), list('ABCDEFGHIJ'))
A B C D E F G H I J
a 1 8 0 3 5 7 7 2 7 1
b 7 7 6 6 1 1 3 4 3 9
c 8 4 9 4 6 7 2 8 1 5
d 1 0 2 4 0 5 1 7 9 6
e 9 0 3 2 3 6 6 9 5 0
f 5 6 2 0 7 9 2 0 8 0
g 7 7 0 5 2 6 1 9 0 1
h 5 8 0 7 4 0 7 3 1 7
i 9 9 6 2 7 7 3 5 0 9
j 3 1 8 0 1 8 9 7 5 9
抓取用户输入。。。注意i
和j
的赋值。您进行了拆分
,但仅获取拆分中的第一个值
i, j = input('>>> ').split()
>>> i C
A.loc[i, j]
6