2017-05-09 2 views
2

나는 같은 dataframe 있습니다튜플을 사용하여 데이터 프레임을 채우는 방법은 무엇입니까?

>>> 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' –

관련 문제