我最初的示例 Dataframe 格式如下:
>>> import pandas as pd
>>> d = {'n': ['one', 'two', 'three', 'four'],
'initial': [3, 4, 10, 10],
'final': [3, 7, 11, 7],}
>>> df = pd.DataFrame(d)
>>> df
n initial final
0 one 3 3
1 two 4 7
2 three 10 11
3 four 10 7
我希望实现的是将n
列中的值复制若干次,复制次数对应于initial
和final
列中的值之间的值。
例如,在第一行中,initial
和final
具有相同的值,因此在输出 Dataframe 的n
列中应该有'one'
的一个示例。对于第二行,initial
和final
相差三个数字,因此'two'
应该有四个重复。如果final
小于initial
,则在输出中不应该有n
中的值的示例。
还应该有一个count
列,从initial
列的值向上计数到final
列的值。
n count
0 one 3
1 two 4
2 two 5
3 two 6
4 two 7
5 three 10
6 three 11
我尝试过使用reindex
和基于df.final - df.initial + 1
的新索引,但这不能处理示例 Dataframe 第四行中的负值。
2条答案
按热度按时间ifmq2ha21#
在您的情况下,先创建
list
,然后创建explode
t3psigkw2#
第一个月