我有一个包含以下内容的电子表格:
start_date | end_date | rating
-----------|----------|--------
01/01/2010 |01/01/2012| 2
01/12/2012 |01/01/2014| 4
-----------|----------|--------
我想把时间段分成年,例如上面的例子,我想得到以下结果:
year | rating
-----|--------
2010 | 2
2011 | 2
2012 | 2
2012 | 4
2013 | 4
2014 | 4
-----|--------
是否可以通过 pandas 方法做到这一点??
最佳答案
理解
假设日期是相同格式的字符串
pd.DataFrame(
[(y, r) for s, e, r in zip(*map(df.get, df))
for y in range(int(s[-4:]), int(e[-4:]) + 1)],
columns=['year', 'rating']
)
year rating
0 2010 2
1 2011 2
2 2012 2
3 2012 4
4 2013 4
5 2014 4
类似但使用 f-string 和 pd.date_range
pd.DataFrame(
[(y, r) for s, e, r in zip(*map(df.get, df))
for y in pd.date_range(s, f"12/31/{e[-4:]}", freq='Y').year],
columns=['year', 'rating']
)
关于python - 把时期分成年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52370069/