我有一个数据框(如下)。我对拆开 from
和 to
列感兴趣。
我需要将 from
和 to
列拆分为 from
和 to
之间每个不同年份的多行。例如,第一行将产生类似这样的内容
我尝试了 pd.melt()
中的所有内容至pd.pivot_table()
.
最佳答案
创建一列类似数组的对象,其中包含“从”和“到”之间的所有年份,然后 explode
在那一栏上。这不是最有效的解决方案,但很简单。
示例数据
a b c d e from to
0 2 9 1 7 3 1940 1945
1 5 6 2 6 1 1950 1951
代码
df['year'] = [np.arange(f,t+1) for f,t in zip(df['from'], df['to'])]
df = df.explode('year')
a b c d e from to year
0 2 9 1 7 3 1940 1945 1940
0 2 9 1 7 3 1940 1945 1941
0 2 9 1 7 3 1940 1945 1942
0 2 9 1 7 3 1940 1945 1943
0 2 9 1 7 3 1940 1945 1944
0 2 9 1 7 3 1940 1945 1945
1 5 6 2 6 1 1950 1951 1950
1 5 6 2 6 1 1950 1951 1951
关于python - 将值拆入 Pandas DataFrame 中的不同行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63166294/