【发布时间】:2014-07-17 08:45:04
【问题描述】:
我有一个 pandas 数据框,其中一列将日期值作为字符串(如“2014-01-01”)。我想为列中存在的每一年定义一个不同的列表,其中列表的元素是在数据框中找到年份的行的索引。
这是我尝试过的:
import pandas as pd
df = pd.DataFrame(["2014-01-01","2013-01-01","2014-02-02", "2012-08-09"])
df = df.values.flatten().tolist()
for i in range(len(df)):
df[i] = df[i][0:4]
y2012 = []; y2013 = []; y2014 = []
for i in range(len(df)):
if df[i] == "2012":
y2012.append(i)
elif df[i] == "2013":
y2013.append(i)
else:
y2014.append(i)
print y2014 # [0, 2]
print y2013 # [1]
print y2012 # [3]
有人知道更好的方法吗?这种方式很好用,但是我有很多年,所以我必须手动定义每个变量,然后通过 for 循环运行它,所以代码变得很长。我试图在熊猫中使用groupby,但我似乎无法让它工作。
非常感谢您的帮助!
【问题讨论】: