2014-01-24 73 views
0

我有一個數據幀df。它有兩列categorydescriptioncategorydescription都不是索引的一部分。熊貓:如果存在更新記錄

我正在循環一些其他數據,然後逐個添加類別(變量= temp_category)到我的數據框。如果category已經存在,我想從數據框中獲取description,向其追加一些文本,然後更新記錄。

如果記錄不存在,我只是追加一個新的紀錄,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 
相關問題