我想重新塑造一个框架到一个框架与以下规则:
1.用ts + dur在当前ts下添加一行,复制其他列
1.将“无”行添加到下一行。
举例说明:
import pandas as pd
import itertools
def segments(df):
start = df['ts']
end = start + df['dur']
lst = list(zip(start, end, itertools.cycle([None])))
return lst
df = pd.DataFrame({
'ts': [1, 5, 10 ],
'dur': [1, 2, 1 ],
'typ': [0, 1, 0]
})
print(df)
lst = segments(df)
print(lst)
字符串
当前输出是一个列表:
ts dur typ
0 1 1 0
1 5 2 1
2 10 1 0
[(1, 2, None), (5, 7, None), (10, 11, None)]
型
预期产出:
ts typ
0 1 0
1 2 0
2 NA NA
3 5 1
4 7 1
5 NA NA
6 10 0
7 11 0
8 NA NA
型
2条答案
按热度按时间6qfn3psc1#
IIUC,无需自定义函数,只需将DataFrame复制3次,并进行小修改,
concat
和sort_index
:字符串
输出量:
型
如果你有一个非常大的DataFrame,你可以用以下步骤来代替排序步骤:
型
68bkxrlz2#
尝试:
字符串
印刷品:
型