如何使用用户输入来选择行列和返回单元格值?

时间:2017-04-18 03:09:40

标签: python csv pandas input lookup

我有一个从csv文件构造的pandas数据帧。

我向用户询问两个值,用空格分隔。

然后我尝试做一个pandas.loc [,]来返回那个单元格值。

如何将输入与行列匹配并仅返回该单元格的原始值? Python不可能?到目前为止,我的程序在确定要查找哪个csv表以及如何将输入分配给变量方面效果很好。这是实际传递到图表查找不起作用。这是一些示例代码。

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

我将Years输入处理成一个int,然后将其输入到一个排序表中,赋予它'Over 0'或'Over 5'等值。这个字符串匹配我的索引中的术语,就像这里的示例表中一样。 Rank作为字符串输入,不做任何更改。

Years    E-9        E-8
Over 0   40         80
Over 2   30         20

我只写了很多东西要清楚!只是寻找任何需要输入的解决方案,并将它们与行/列匹配以返回单元格。

1 个答案:

答案 0 :(得分:0)

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

抓取用户输入...请注意ij的作业。你有一个split但只是抓住了分裂中的第一个值

i, j = input('>>>  ').split()
>>>  i C

A.loc[i, j]

6