【发布时间】:2019-03-29 11:48:30
【问题描述】:
我想在 dataFrame 中创建一个列,这将是另外两个结果的结果
在下面的示例中,创建了两个数据帧:df1 和 df2。
然后创建了第三个dataFrame,它是前两个的交汇点。在此 df3 中,“日期”列已更改为 dateTime 类型。
之后,“DateMonth”列被创建,其月份是从“Dates”列中提取的。
# df1 and df2:
id_sales = [1, 2, 3, 4, 5, 6]
col_names = ['Id', 'parrotId', 'Dates']
df1 = pd.DataFrame(columns = col_names)
df1.Id = id_sales
df1.parrotId = [1, 2, 3, 1, 2, 3]
df1.Dates = ['2012-12-25', '2012-08-20', '2013-07-23', '2014-01-14', '2016-02-21', '2015-10-31']
col_names2 = ['parrotId', 'months']
df2 = pd.DataFrame(columns = col_names2)
df2.parrotId = parrot_id
df2.months = [0, ('Fev, Mar, Apr'), 0]
# df3
df3 = pd.merge(df1, df2, on = 'parrotId')
df3.Dates = pd.to_datetime(df3.Dates)
df3['DateMonth'] = df3.Dates.dt.month
在这个 df3 中,我需要一个新列,如果“月”列中存在“DateMonth”列的月份,则该列的值将为 1。
我的困难是在“月份”列中或者值为零或者值是月份列表。
如何实现这个结果?
【问题讨论】:
-
什么是 parrot_id?
标签: python pandas datetime dataframe