为熊猫数据框中的每一行应用 linspace

我吃吐司

如果我有一个数据框,例如像这样说 df

                     date     number_range  id
0 [2010-01-01, 2010-03-01]    [5, 10]       1
1 [2010-02-01, 2010-06-01]    [1, 3]        1
2 [2010-07-01, 2010-11-01]    [12-50]       1

我想通过查找日期差异然后将 linspace 应用于所有行来将numpy.linspace应用于上述内容。例如,第 0 行的日期差异为 2,应用 linspace(5,10,2),第 1 行的差异为 4,应用 linspace(1,3,4)。

final result
-------------
                     date     number_range  id   linspace
0 [2010-01-01, 2010-03-01]    [5, 10]       1    [5, 10]
1 [2010-02-01, 2010-06-01]    [1, 3]        1    [1, 1.66667, 2.3333, 3]
2 [2010-07-01, 2010-12-01]    [12-50]       1    [12, 21.5, 31, 40.5, 50]

我试过做df.apply(lambda row: np.linspace(row['start_value'], row['end value'], row['diff']),但我一直收到一个类型错误,说“系列”对象不能被解释为整数......我试过用同样的错误做一个 diff.astype(int)......不知道去哪里从那里。

我马赫迪

你可以像下面这样apply()使用:axis=1(if diff = [2,4,5])

df['linspace'] = df.apply(lambda x: np.round(
    np.linspace(x['number_range'][0],  x['number_range'][1], x['diff']),3), 
                          axis=1)
print(df)

或者首先,您可以创建start_valueend_value作为您的问题,然后创建linspace如下:

df[['start_value','end_value']] = pd.DataFrame(df['number_range'].to_list())
df['linspace'] = df.apply(lambda x: np.round(
    np.linspace(x['start_value'],  x['end_value'], x['diff']),3), axis=1)
print(df)

输出:

                       date number_range  diff                        linspace
0  [2010-01-01, 2010-03-01]      [5, 10]     2                     [5.0, 10.0]
1  [2010-02-01, 2010-06-01]       [1, 3]     4        [1.0, 1.667, 2.333, 3.0]
2  [2010-07-01, 2010-11-01]     [12, 50]     5  [12.0, 21.5, 31.0, 40.5, 50.0]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将熊猫数据框中的每一行乘以不同的值

如何在熊猫数据框中从当前行中减去前一行并将其应用于每一行;不使用循环?

调整使用linspace创建的数组的大小:数组不拥有其数据

排序熊猫数据框中每一行的最快方法

删除熊猫数据框中每一行的标点符号

如何在numpy中向量化linspace

在数据框的每一行中应用textblob

为熊猫数据框中的每一行选择切片/列范围

Linspace应用于数组

尝试将熊猫数据框中的每一行复制一定次数

熊猫数据框中每一行的随机值

如何在numpy向量的每个元素之间应用linspace?

在Python中求解ODE时,如何获得比linspace更多的变量值?(编辑)

如何返回与熊猫数据框中的每一行都符合条件的列标题?

为熊猫数据框的每一行替换一列中的字符串

我可以在Matlab中为linspace函数的边界输入使用向量吗?

是否有一个参数设置numpy.linspace的精度?

Numpy将两个不同的linspace合并为一个坐标矩阵

如何对熊猫数据框中的每一行进行排序并获取索引?

从np.linspace的一行中排除零

linspace会始终包含最后一点吗?

计算熊猫数据框中每一行的百分比

带有匿名函数的 Linspace 每隔一个值跳过一次

删除熊猫数据框中每一行的最后一个词

如何从熊猫数据框中的列中的每一行中删除重复值

我可以在 `np.linspace` 中插入一个 '0' 吗?

如何删除熊猫数据框中的每一行?

使用來自 linspace 的坐標獲取矩陣中的索引

为熊猫数据框中的每一行从左侧提取子字符串到特定字符?