Python 基于其他数据帧值创建列

Python 基于其他数据帧值创建列,python,datetime,numpy,pandas,dataframe,Python,Datetime,Numpy,Pandas,Dataframe,我有一个例子。df2['Check']所做的是,如果df['date']=='10月'那么我分配0,否则分配1 np.其中可以在其他条件下正常工作,但是strftime不喜欢导致此错误的序列: import pandas as pd import io import numpy as np import datetime data = """ date id 2015-10-31 50230 2015-10-31 48646 201

我有一个例子。
df2['Check']
所做的是,如果
df['date']=='10月'
那么我分配0,否则分配1

np.其中
可以在其他条件下正常工作,但是
strftime
不喜欢导致此错误的序列:

import pandas as pd
import io
import numpy as np
import datetime

data = """
    date          id
    2015-10-31    50230
    2015-10-31    48646
    2015-10-31    48748
    2015-10-31    46992
    2015-11-01    46491
    2015-11-01    45347
    2015-11-01    45681
    2015-11-01    46430
    """

df = pd.read_csv(io.StringIO(data), delimiter='\s+', index_col=False, parse_dates = ['date'])

df2 = pd.DataFrame(index=df.index)

df2['Check'] = np.where(datetime.datetime.strftime(df['date'],'%B')=='October',0,1)

这是一个稍微简单的版本,使用
datetime
对象的
month
属性。如果该值等于10,只需将真/假值映射到所需的0/1对:

  Check
0     0
1     0
2     0
3     0
4     1
5     1
6     1
7     1

这是一个稍微简单的版本,使用
datetime
对象的
month
属性。如果该值等于10,只需将真/假值映射到所需的0/1对:

  Check
0     0
1     0
2     0
3     0
4     1
5     1
6     1
7     1

这是一个稍微简单的版本,使用
datetime
对象的
month
属性。如果该值等于10,只需将真/假值映射到所需的0/1对:

  Check
0     0
1     0
2     0
3     0
4     1
5     1
6     1
7     1

这是一个稍微简单的版本,使用
datetime
对象的
month
属性。如果该值等于10,只需将真/假值映射到所需的0/1对:

  Check
0     0
1     0
2     0
3     0
4     1
5     1
6     1
7     1

@ako的答案是关于钱的,但根据@Kartik和@EdChum的评论,我得出了以下结论:

df2['Check']=df.date.apply(lambda x: x.month==10).map({True:0,False:1})

@ako的答案是关于钱的,但根据@Kartik和@EdChum的评论,我得出了以下结论:

df2['Check']=df.date.apply(lambda x: x.month==10).map({True:0,False:1})

@ako的答案是关于钱的,但根据@Kartik和@EdChum的评论,我得出了以下结论:

df2['Check']=df.date.apply(lambda x: x.month==10).map({True:0,False:1})

@ako的答案是关于钱的,但根据@Kartik和@EdChum的评论,我得出了以下结论:

df2['Check']=df.date.apply(lambda x: x.month==10).map({True:0,False:1})

使用
.dt
存取器。使用0.17。看。之所以会出现错误,是因为datetime使用的是单参数,而不是数组。我会记住这一点,这非常有用。anaconda的一部分我现在有0.16。不应该
df['date'].dt.month==9
即使在
0.16.0
中也可以使用
.dt
访问器。使用0.17。看。之所以会出现错误,是因为datetime使用的是单参数,而不是数组。我会记住这一点,这非常有用。anaconda的一部分我现在有0.16。不应该
df['date'].dt.month==9
即使在
0.16.0
中也可以使用
.dt
访问器。使用0.17。看。之所以会出现错误,是因为datetime使用的是单参数,而不是数组。我会记住这一点,这非常有用。anaconda的一部分我现在有0.16。不应该
df['date'].dt.month==9
即使在
0.16.0
中也可以使用
.dt
访问器。使用0.17。看。之所以会出现错误,是因为datetime使用的是单参数,而不是数组。我会记住这一点,这非常有用。anaconda的一部分我现在有0.16。不应该
df['date'].dt.month==9
即使在
0.16.0
中也能工作吗?