【发布时间】:2019-10-04 08:19:05
【问题描述】:
我想用正向填充按时间顺序重复我的 df 中的行。
原始df:
A B C Year
0 ABC 0 A 1950
1 CDE 1 A 1950
2 XYZ 1 B 1954
3 123 1 C 1954
4 X12 1 B 1956
5 123 1 D 1956
6 124 1 D 1956
所需的df:
A B C Year
0 ABC 0 A 1950
1 CDE 1 A 1950
2 ABC 0 A 1951
3 CDE 1 A 1951
4 ABC 0 A 1952
5 CDE 1 A 1952
6 ABC 0 A 1953
7 CDE 1 A 1953
8 XYZ 1 B 1954
9 123 1 C 1954
10 XYZ 1 B 1955
11 123 1 C 1955
12 X12 1 B 1956
13 123 1 D 1956
14 124 1 D 1956
我尝试将年份列转换为日期时间,并使用前向填充的逐年重采样。 但这不起作用,因为如果按年重新采样,则重新采样每年只给出一行。
df.resample('YS').first().ffill().reset_index()
所需的df:
A B C Year
0 ABC 0 A 1950
1 CDE 1 A 1950
2 ABC 0 A 1951
3 CDE 1 A 1951
4 ABC 0 A 1952
5 CDE 1 A 1952
6 ABC 0 A 1953
7 CDE 1 A 1953
8 XYZ 1 B 1954
9 123 1 C 1954
10 XYZ 1 B 1955
11 123 1 C 1955
12 X12 1 B 1956
13 123 1 D 1956
14 124 1 D 1956
【问题讨论】:
-
为什么1955只有一行?>
-
是一个错字:-) 刚刚更正了。
-
数据(年份)是否成对出现?
-
不可以是任意个数
标签: pandas