我想将嵌套数据对转换为多列。
举个例子,列中的IN
和是数据对,但它是嵌套的。OUT
action
import pandas as pd
data = [
[1,'IN'],
[2,'IN'],
[3,'OUT'],
[4,'OUT'],
[5,'IN'],
[6,'IN'],
[7,'OUT'],
[8,'OUT']
]
df = pd.DataFrame(data, columns=['ts','action'])
print(df)
预期输出为:
ts_IN ts_OUT
0 1 4
1 2 3
4 5 8
5 6 7
任何熊猫方法都可以处理这种情况吗?
在这种情况下,我会选择纯 Python 解决方案,如下所示:
您可以使用自定义的 python 函数,跟踪看到的 IN 并在每次找到 OUT 时产生最后一个:
注意:这要求任何点的 OUT 都不能多于 IN。
输出:
其他例子:
您可以创建初始框架,然后过滤框架以获取
IN
和OUT
值:如果您想要更动态的版本,您可以传入列/字段和过滤器:
试试这个: