2017-05-09 14 views
2

は、私は、次のようなデータフレームを持っている:タプルを使用してデータフレームにデータを取り込む方法は?

>>> df = pd.DataFrame(index=[1,2,3,4], columns=[1,2,3,4]) 
>>> df 
    1 2 3 4 
1 NaN NaN NaN NaN 
2 NaN NaN NaN NaN 
3 NaN NaN NaN NaN 
4 NaN NaN NaN NaN 
>>> 

そして、タプルのリストは、「座標」として使用します。タプルの一つは、例えば:

(2,4) 

私は、データフレームのこの位置に1を入力したいと思います:

 1 2 3 4 
1 NaN NaN NaN NaN 
2 NaN NaN NaN 1 
3 NaN NaN NaN NaN 
4 NaN NaN NaN NaN 

はどうすればこれを行うことができますか?

+0

[pandas - Pandasのセルにアクセスするには、Rのdf \ [3,4 \]に相当する可能性があります(http://stackoverflow.com/questions/21393489/pandas-how-to-access-cell- in-pandas-equivalent-of-df3-4-in-r) –

答えて

2

使用loc

tup = (2,4) 
df.loc[tup] = 1 
print (df) 
    1 2 3 4 
1 NaN NaN NaN NaN 
2 NaN NaN NaN 1 
3 NaN NaN NaN NaN 
4 NaN NaN NaN NaN 

set_valueと別の解決策:

df.set_value(tup[0], tup[1], 1) 
print (df) 
    1 2 3 4 
1 NaN NaN NaN NaN 
2 NaN NaN NaN 1 
3 NaN NaN NaN NaN 
4 NaN NaN NaN NaN 

それともindexcolumns値の位置のためのget_locvaluesによって作成numpy arrayに設定:

df.values[df.index.get_loc(tup[0]), df.columns.get_loc(tup[1])] = 1 
print (df) 
    1 2 3 4 
1 NaN NaN NaN NaN 
2 NaN NaN NaN 1 
3 NaN NaN NaN NaN 
4 NaN NaN NaN NaN 
+0

それは素晴らしいです。私は 'df.loc'を使ってこれをやりました。 'データのtupのために: ... df.loc [tup] = 1' –

関連する問題