[英]Python Add Column to Pandas Dataframe That is a Count of List Elements in Another Column
[英]Add column if data is on the list - DataFrame in Python Pandas?
我有 DataFrame 如下所示:
df = pd.DataFrame({"day" : ["A", "A", "B", "B"],
"data" : ["01.05.2019", "05.02.2019", "10.11.2019", "15.08.2018"]})
df["data"] = df["data"].astype("datetime64")
我列出了數據: list = pd.to_datetime(['01.05.2019','15.08.2018', '25.07.2012'])
我需要添加到 df column = "col1" 其中:
1 其中 df"day" = B 和 df"data" 在 "list" 中
0 否則
所以我需要如下結果:
df["col1"] = df.apply(lambda x: 1 if x.day == 'B' and x.data in dates else 0, axis = 1)
# day data col1
#0 A 2019-01-05 0
#1 A 2019-05-02 0
#2 B 2019-10-11 0
#3 B 2018-08-15 1
PD:我將list
更改為dates
,請不要使用該名稱。
您可以使用isin
。 而且您應該將dayfirst=True
添加到to_datetime
,否則 01.05.2019 將變成 2019-01-05。
df = pd.DataFrame({"day" : ["A", "A", "B", "B"],
"data" : ["01.05.2019", "05.02.2019", "10.11.2019", "15.08.2018"]})
df["data"] = pd.to_datetime(df["data"], dayfirst=True)
li = pd.to_datetime(['01.05.2019','15.08.2018', '25.07.2012'], dayfirst=True)
df['col1'] = ((df.day == 'B') & df.data.isin(li)).astype('int')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.