我有这样的数据:
Id date sales sales_new
291 2022-03-01 10 15
292 2022-04-01 12 16
293 2022-05-01 9 0
294 2022-06-01 13 20
295 2022-07-01 10 nan
296 2022-08-01 12 nan如果这些值存在,我想替换它们。
成果愿望:
Id date sales
291 2022-03-01 15
292 2022-04-01 16
293 2022-05-01 0
294 2022-06-01 20
295 2022-07-01 10
296 2022-08-01 12发布于 2022-09-21 23:48:55
您可以使用update这样做:
df['sales'].update(df['sales_new'])
df.drop(columns='sales_new')结果
Id date sales
0 291 2022-03-01 15
1 292 2022-04-01 16
2 293 2022-05-01 0
3 294 2022-06-01 20
4 295 2022-07-01 10
5 296 2022-08-01 12发布于 2022-09-21 23:39:10
你可以用这个:
import numpy as np
import pandas as pd
data = [[291, "2022-03-01", 10, 15],
[292, "2022-04-01", 12, 16],
[293, "2022-05-01", 9, 0],
[294, "2022-06-01", 13, 20],
[295, "2022-07-01", 10, np.nan],
[296, "2022-08-01", 12, np.nan]]
df = pd.DataFrame(data, columns=["Id", "date", "sales", "sales_new"])
df["sales"] = df.apply(lambda row: row["sales_new"] if not pd.isna(row["sales_new"]) else row["sales"], axis=1)发布于 2022-09-21 23:50:12
df["sales"] = df["sales_new"].fillna(df["sales"])
del df["sales_new"]https://stackoverflow.com/questions/73807871
复制相似问题