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
中也能工作吗?