我有这个数据框:
我想要一个新列,它只计算MatchID列中matchID的第一个实例。
具体来说,它检查matchID以查看它是否是唯一的。如果它是唯一的,则在新列行中输入1。如果它不是唯一的,而是matchID的FIRST实例,它还在新列中输入1。如果它是重复的而不是第一个实例,则在新列中放置零。
任何帮助都会很棒。从excel切换到pandas要比预期的要困难得多:)。
提前致谢。
答案 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