Pandas计算列中每个值的出现次数

时间:2018-02-07 15:23:15

标签: python pandas

我有这个数据框:

My DataFrame

我想要一个新列,它只计算MatchID列中matchID的第一个实例。

具体来说,它检查matchID以查看它是否是唯一的。如果它是唯一的,则在新列行中输入1。如果它不是唯一的,而是matchID的FIRST实例,它还在新列中输入1。如果它是重复的而不是第一个实例,则在新列中放置零。

任何帮助都会很棒。从excel切换到pandas要比预期的要困难得多:)。

提前致谢。

2 个答案:

答案 0 :(得分:2)

怎么样:

df['Count'] = (~df['MatchID'].duplicated()).astype(int)

答案 1 :(得分:0)

以下是基于示例DataFrame的方法:

# Some dummy data. The field ID is equivalent to MatchID
df = pd.DataFrame([("A",12),("B", 12), ("A",123)], columns=["id","val"])
# Create a temporary subset of the DF that matches the "first or unique" rule
first_or_unique = df.drop_duplicates(subset="id", keep="first")
# Populate the new match lookup series with 0 for all rows to begin with
df["match"] = 0
# Finally, use `.loc` along with the temporary DF's index to set the relevant
# rows to be 1
df.loc[first_or_unique.index.values, "match"] = 1