2017-04-18 1 views
1

私はcsvファイルから構築されたpandasデータフレームを持っています。ユーザー入力を使用して行の列を選択し、セルの値を返す方法

私は、スペースで区切られた2つの値をユーザーに尋ねます。

次に、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 

私はint型への年の入力を処理して、それをこの文字列は、のように私のインデックス内の用語に一致する「0以上」かなど「5以上」の値を与えるソートテーブルに入力し、それをここの例の表ランクは文字列として入力され、変更は行われません。

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

私は多くのことを明確に書いています!入力を受け取り、それらを行/列にマッチさせてセルを返すソリューションを探してください。

答えて

0

ijへの割り当てを注意してください... 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 

グラブユーザーの入力とします。 splitを持っていましたが、分割の最初の価値しか得ていませんでした。

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

A.loc[i, j] 

6 
関連する問題