熊猫:如果存在则更新记录

时间:2014-01-24 00:07:17

标签: python pandas

我有一个数据帧,df。它有两列categorydescriptioncategorydescription都不是索引的一部分。

我正在循环其他一些数据,然后逐个添加类别(variable = temp_category)到我的数据帧。如果category已经存在,我想从数据框中获取description,向其中附加一些文本,然后更新记录。

如果记录不存在,我只是用df.append附加一条新记录

我使用它来确定数据框中是否已存在该类别:

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

我的问题是:

  • 如何更新记录?
  • 上面的if语句是否是查看数据框中是否存在temp_category的最简单方法?

1 个答案:

答案 0 :(得分: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