获取2个pandas列的范围列表

2024-10-06 08:44:47 发布

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

我有以下数据帧(重新格式化):

    f_name  l_name      n   f_bought  l_bought
0   Abraham Livingston  24  1164      1187
1   John    Brown       4   1188      1191
2   Samuel  Barret      16  1192      1207
3   Nathan  Blodget     4   1208      1212
4   Bobby   Abraham     1   1212      1212

我想创建一个列bought,这是一个列表range(df[f_bought], df[l_bought])。在

我试过:

^{pr2}$

但这会导致类型错误:

"cannot convert the series to <type 'int'>", u'occurred at index 0'

我试过测向信息(),两列都是int64类型。在

我想知道我是否应该使用df.loc[]或类似的东西?或者完全是别的什么?在


Tags: 数据name类型df列表johnsamuelbrown
1条回答
网友
1楼 · 发布于 2024-10-06 08:44:47

您应该能够使用^{}来实现这一点,它用于将函数应用于数据帧的每一行或每一列。在

def bought_range(row):
    return range(row.f_bought, row.l_bought)

df['bought_range'] = df.apply(bought_range, axis=1)

结果是:

^{pr2}$

一个警告是Python的range不包括上限:

In [1]: range(3, 6)
Out[1]: [3, 4, 5]

处理(return range(row.f_bought, row.l_bought + 1))并不难,但确实需要考虑。在

相关问题 更多 >