这是我的df的一个示例:
我不想在我的类中存储重复的行并在最后添加它们。我想实时处理它们。
我看到了这个 pandas: apply function to DataFrame that can return multiple rows,但我不确定groupby是否能帮助我。
谢谢
pd.DataFrame([["1", "2"], ["1", "2"], ["3", "other_value"]],
columns=["a", "b"])
a b
0 1 2
1 1 2
2 3 other_value
我希望能够达到这个目标:
pd.DataFrame([["1", "2"], ["1", "2"], ["3", "other_value"], ["3", "row_duplicated_with_edits_in_this_column"]],
columns=["a", "b"])
a b
0 1 2
1 1 2
2 3 other_value
3 3 row_duplicated_with_edits_in_this_column
使用apply方法,并进行一些检查(为了简单起见,我不包括这些检查),但在某些条件下,对于apply函数中的某些行,复制该行,对该行进行编辑,并将两行插入df中。
因此,像这样:
def f(row):
if condition:
row["a"] = 3
elif condition:
row["a"] = 4
elif condition:
row_duplicated = row.copy()
row_duplicated["a"] = 5 # I need also this row to be included in the df
return row
df.apply(f, axis=1)
我不想在我的类中存储重复的行并在最后添加它们。我想实时处理它们。
我看到了这个 pandas: apply function to DataFrame that can return multiple rows,但我不确定groupby是否能帮助我。
谢谢
df.query().apply().combine_first()
,但是即使进行了小的修改,你的解决方案也可以工作,而无需将数据存储在任何地方。 - Claudiu Creanga