我正在使用Python / Pandas来操纵数据框。我有一个列'月'(值从1.0到12.0)。现在我想创建另一个列'quarter'。当我写 -
for x in data['month']:
print ((x-1)//3+1)
但我无法将输出分配给新列。
for x in data['month']:
data['quarter'] = ((x-1)//3 + 1)
我的问题是为什么我在创建列时会失去价值?
注意:我使用的是python 3.6和Anaconda 1.7.0。 'data'是我正在使用的数据框。最初我只使用
转换为月份和年份的日期 data['month'] = pd.DatetimeIndex(data['first_approval']).month
有趣的是,本月专栏显示了dtype:float64。我读过somewhere“dtype('float64')相当于None”但我不明白这句话。任何建议或帮助将受到高度赞赏。
答案 0 :(得分:2)
从日期开始获取季度的最简单方法是
data['quarter'] = pd.DatetimeIndex(data['date']).quarter
与获得月份信息的方式相同。
以下行会将整列设置为从计算中获得的最后一个值。 (可能有一些价值不是正确的日期格式,因此是NaNs)
data['quarter'] = ((x-1)//3 + 1)
答案 1 :(得分:1)
尝试使用以下内容:
df['quarter'] = df['month'].apply(lambda x: ((x-1)//3 + 1))