增加列值Pandas

2024-10-03 21:27:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含位置和时间数据的143999行的数据帧。 我已经做了一个列“dt”,计算行之间的时差。 现在我想创建一个新列,它给dt值一个组号。 所以它从group=0开始,当dt>;60时,组数应该增加1。 我尝试了以下方法:

def group(x):
    c = 0 #

    if densdata["dt"] < 60:
        densdata["group"] = c

    elif densdata["dt"] >= 60:
        c += 1
        densdata["group"] = c

densdata["group"] = densdata.apply(group, axis=1)'

我得到的错误是:The truth value of a Series is ambiguous。在

有什么办法解决这个问题吗?在

这就是我想要的:

^{pr2}$

Tags: 数据方法gtifdef错误时间dt
1条回答
网友
1楼 · 发布于 2024-10-03 21:27:31

您可以利用True的计算结果为1并使用.cumsum()。在

densdata = pd.DataFrame({'dt': np.random.randint(low=50,high=70,size=20),
                         'group' : np.zeros(20, dtype=np.int32)})

print(densdata.head())
   dt  group
0  52      0
1  59      0
2  69      0
3  55      0
4  63      0

densdata['group'] = (densdata.dt >= 60).cumsum()

print(densdata.head())
   dt  group
0  52      0
1  59      0
2  69      1
3  55      1
4  63      2

如果要保证group的第一个值为0,即使dt的第一个值是>;=60,那么使用

^{pr2}$

相关问题 更多 >