[英]How to set the value of a cell in a dataframe based on values in another dataframe?
我有這兩個數據框:
ALL_df
Out[20]:
value dow doy ... start to date_helper
timestamp ...
2019-01-01 00:00:00+00:00 0.015262 1 1 ... 1 1 2019-01-01
2019-01-01 01:00:00+00:00 0.016534 1 1 ... 1 1 2019-01-01
2019-01-01 02:00:00+00:00 0.013991 1 1 ... 1 1 2019-01-01
2019-01-01 03:00:00+00:00 0.038156 1 1 ... 1 1 2019-01-01
2019-01-01 04:00:00+00:00 0.021622 1 1 ... 1 1 2019-01-01
... ... ... ... ... .. ...
2019-12-30 19:00:00+00:00 0.181823 0 364 ... 2 2 2019-12-30
2019-12-30 20:00:00+00:00 0.144769 0 364 ... 2 1 2019-12-30
2019-12-30 21:00:00+00:00 0.052565 0 364 ... 1 1 2019-12-30
2019-12-30 22:00:00+00:00 0.084449 0 364 ... 1 1 2019-12-30
2019-12-30 23:00:00+00:00 0.076693 0 364 ... 1 2 2019-12-30
[192192 rows x 19 columns]
ferientage_df
Out[19]:
Unnamed: 0 Bundesland year Ferien dates
0 0 Baden-W�rttemberg 1995 Osterferien 1995-04-18
1 1 Baden-W�rttemberg 1995 Osterferien 1995-04-19
2 2 Baden-W�rttemberg 1995 Osterferien 1995-04-20
3 3 Baden-W�rttemberg 1995 Osterferien 1995-04-21
4 4 Baden-W�rttemberg 1995 Osterferien 1995-04-22
... ... ... ... ...
45125 45125 Schleswig-Holstein 2023 Weihnachtsferien 2024-01-02
45126 45126 Schleswig-Holstein 2023 Weihnachtsferien 2024-01-03
45127 45127 Schleswig-Holstein 2023 Weihnachtsferien 2024-01-04
45128 45128 Schleswig-Holstein 2023 Weihnachtsferien 2024-01-05
45129 45129 Schleswig-Holstein 2023 Weihnachtsferien 2024-01-06
[45130 rows x 5 columns]
我想根據ALL_df
中的日期是否存在於date_helper
(德國假期)的列dates
中,向ferientage_df
添加一個名為“Holiday”的列
是否可以在 1-2 行中執行此操作,或者我是否必須以某種方式遍歷整個過程?
給定以下玩具數據框:
import pandas as pd
ALL_df = pd.DataFrame(
{
"value": {
0: "0.016534",
1: "0.013991",
2: "0.038156",
3: "0.021622",
},
"date_helper": {
0: "2019-01-01",
1: "1995-04-18",
2: "2019-01-01",
3: "2024-01-03",
},
}
)
ferientage_df = pd.DataFrame(
{
"Ferien": {
0: "Osterferien",
1: "Osterferien",
2: "Weihnachtsferien",
3: "Weihnachtsferien",
},
"dates": {
0: "1995-04-18",
1: "1995-04-19",
2: "2024-01-03",
3: "2024-01-04",
},
}
)
你可以這樣做:
ALL_df = ALL_df.assign(
Holiday=lambda df: df["date_helper"].isin(ferientage_df["dates"])
)
print(ALL_df)
# Output
value date_helper Holiday
0 0.016534 2019-01-01 False
1 0.013991 1995-04-18 True
2 0.038156 2019-01-01 False
3 0.021622 2024-01-03 True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.