2014-01-24 3 views
0

데이터 프레임, df가 있습니다. 그것에는 두 개의 열 categorydescription이 있습니다. category 또는 description도 색인의 일부입니다.팬더 : 업데이트 레코드가있는 경우

나는 다른 데이터를 둘러보고 내 데이터 프레임에 카테고리 (variable = temp_category)를 하나씩 추가하고 있습니다. category이 이미 존재하는 경우 데이터 프레임에서 description을 가져오고 텍스트를 추가 한 다음 레코드를 업데이트하고 싶습니다.

기록은 단순히 내가 범주가 이미 dataframe에 있는지 확인하려면이 사용하고

df.append에 새 레코드를 추가하고 존재하지 않는 경우 :

if df.ix[df['category'] == temp_category]['category'].count() > 0:

내 질문 :

  • 어떻게 레코드를 업데이트합니까?
  • 위의 if 문은 데이터 프레임에 temp_category이 있는지 확인하는 가장 간단한 방법입니까?
+0

당신이 데이터를 많이이 작업을 수행 하시겠습니까? 추가하지 않고 DataFrame을 검색하면 추가가 느립니다 (Q (n)). – HYRY

답변

2

어쩌면 pandas.merge() 당신이 원하는 무엇인가 :

import pandas as pd 

df1 = pd.DataFrame({"c":["A", "B", "C"], "d":["d1", "d2", "d3"]}) 
df2 = pd.DataFrame({"c":["A", "B", "D", "E"], "d":["xx1", "xx2", "xx3", "xx4"]}) 

df = pd.merge(df1, df2, on="c", how="outer") 
df.fillna("", inplace=True) 
df["d"] = df["d_x"] + df["d_y"] 
df.drop(["d_x", "d_y"], axis=1, inplace=True) 
df 

출력 :

c  d 
0 A d1xx1 
1 B d2xx2 
2 C  d3 
3 D xx3 
4 E xx4 
관련 문제