pandas 根据一个 Dataframe 的行设置另一个 Dataframe 的行值

ljsrvy3e  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(231)

我做了一个模拟的例子来说明我的问题,当然,我正在处理的是一些更复杂的东西。阅读这个例子会让一切更容易理解,但我的目标是使用一个 Dataframe 的行引用值来设置另一个 Dataframe 的新列的值。以我的例子为例,我想在df1中创建一个名为z1的新列。通过考虑x1的值以d2的y2的值为基准来形成该列。

import numpy as np 
import pandas as pd

x1 = np.array([])
for i in np.arange(0, 15, 3):
    x1i = np.repeat(i, 3)
    x1 = np.append(x1, x1i)

y1 = np.linspace(0, 1, len(x1))

x2 = np.arange(0, 15, 3)
y2 = np.linspace(0, 1, len(x2))

df1 = pd.DataFrame([x1, y1]).T
df2 = pd.DataFrame([x2, y2]).T
df1.columns = ['x1', 'y1']
df2.columns = ['x2', 'y2']

因此,df1为:

x1        y1
0    0.0  0.000000
1    0.0  0.071429
2    0.0  0.142857
3    3.0  0.214286
4    3.0  0.285714
5    3.0  0.357143
6    6.0  0.428571
7    6.0  0.500000
8    6.0  0.571429
9    9.0  0.642857
10   9.0  0.714286
11   9.0  0.785714
12  12.0  0.857143
13  12.0  0.928571
14  12.0  1.000000

且DF2是:

x2    y2
0   0.0  0.00
1   3.0  0.25
2   6.0  0.50
3   9.0  0.75
4  12.0  1.00

我想实现的目标是:

x1        y1        z1
0    0.0  0.000000      0.00
1    0.0  0.071429      0.00
2    0.0  0.142857      0.00
3    3.0  0.214286      0.25
4    3.0  0.285714      0.25
5    3.0  0.357143      0.25
6    6.0  0.428571      0.50
7    6.0  0.500000      0.50
8    6.0  0.571429      0.50
9    9.0  0.642857      0.75
10   9.0  0.714286      0.75
11   9.0  0.785714      0.75
12  12.0  0.857143      1.00
13  12.0  0.928571      1.00
14  12.0  1.000000      1.00
xmjla07d

xmjla07d1#

您可以使用map来执行此操作。
第一个

相关问题