我如何匹配另一列上的列的值从另一列取值?

  • 本文关键字:一列 何匹配 pandas indexing
  • 更新时间 :
  • 英文 :


我的数据帧如下

time    Weg     Kraft   Adj_Zug_Time    eps     time2   
0   0.02    -0.02771    28.3    1.12          0     0               
1   0.04    -0.0269     28.3    1.14    0.00018772  0.1     
2   0.06    -0.02608    21.2    1.16    0.00015665  0.2     
3   0.08    -0.02527    21.2    1.18    0.00018191  0.3     
4   0.1     -0.02443    28.3    1.2     0.00018107  0.4     
5   0.12    -0.02362    28.3    1.22    0.0001619   0.5     
6   0.14    -0.02277    28.3    1.24    0.00015181  0.6     
7   0.16    -0.02193    28.3    1.26    0.00013562  0.7     
8   0.18    -0.0211     28.3    1.28    0.00015082  0.8     
9   0.2     -0.02028    28.3    1.3     0.00016073  0.9     
10  0.22    -0.01945    28.3    1.32    0.00012887  1   
11  0.24    -0.01862    21.2    1.34    0.00017036  1.1     
12  0.26    -0.01776    35.3    1.36    0.00013887  1.2     
13  0.28    -0.01689    28.3    1.38    0.00013914  1.3     
14  0.3     -0.01605    28.3    1.4     0.0001629   1.4     
15  0.32    -0.01518    35.3    1.42    0.00017935  1.5     
16  0.34    -0.01434    42.4    1.44    0.00022273  1.6     
17  0.36    -0.01351    35.3    1.46    0.00021165  1.7     
18  0.38    -0.01265    35.3    1.48    0.00025136  1.8     
19  0.4     -0.0118     28.3    1.5     0.00027536  1.9     
20  0.42    -0.01097    49.4    1.52    0.00029486  2       
21  0.44    -0.01011    35.3    1.54    0.00031133  2.1     
22  0.46    -0.00928    42.4    1.56    0.00033505  2.2     
23  0.48    -0.00846    49.4    1.58    0.00036787  2.3     
24  0.5     -0.00761    42.4    1.6     0.00037578  2.4     
25  0.52    -0.0068     42.4    1.62    0.00040227  2.5     
26  0.54    -0.00598    42.4    1.64    0.00043238  2.6     
27  0.56    -0.00517    35.3    1.66    0.00044347  2.7     
28  0.58    -0.00431    49.4    1.68    0.00044462  2.8     
29  0.6     -0.00352    49.4    1.7     0.00048994  2.9     
30  0.62    -0.00269    49.4    1.72    0.00050601  3       
31  0.64    -0.00187    42.4    1.74    0.00053589  3.1     
32  0.66    -0.00102    49.4    1.76    0.00054206  3.2     
33  0.68    -0.00018    49.4    1.78    0.00057367  3.3     
34  0.7     0.00065     49.4    1.8     0.0005971   3.4     
35  0.72    0.00149     49.4    1.82    0.00060671  3.5     
36  0.74    0.00228     56.5    1.84    0.00060161  3.6     

我想创建一个名为Stress的新列,它将从Kraft列中获取值,其Adj_Zug_time值将与time2值匹配。

期望输出如下:

time    Weg     Kraft   Adj_Zug_Time    eps     time2 Spannung_02
0   0.02    -0.02771    28.3    1.12             0          0       🔴
1   0.04    -0.0269     28.3    1.14    0.00018772          0.1     🔴
2   0.06    -0.02608    21.2    1.16    0.00015665          0.2     🔴
3   0.08    -0.02527    21.2    1.18    0.00018191          0.3     🔴
4   0.1     -0.02443    28.3    1.2     0.00018107          0.4     🔴
5   0.12    -0.02362    28.3    1.22    0.0001619           0.5     🔴
6   0.14    -0.02277    28.3    1.24    0.00015181          0.6     🔴
7   0.16    -0.02193    28.3    1.26    0.00013562          0.7     🔴
8   0.18    -0.0211     28.3    1.28    0.00015082          0.8     🔴
9   0.2     -0.02028    28.3    1.3     0.00016073          0.9     🔴
10  0.22    -0.01945    28.3    1.32    0.00012887           1      🔴
11  0.24    -0.01862    21.2    1.34    0.00017036           1.1    🔴
12  0.26    -0.01776    35.3    1.36    0.00013887           1.2    28.3
13  0.28    -0.01689    28.3    1.38    0.00013914           1.3    28.3
14  0.3     -0.01605    28.3    1.4     0.0001629            1.4    28.3
15  0.32    -0.01518    35.3    1.42    0.00017935           1.5    28.3
16  0.34    -0.01434    42.4    1.44    0.00022273           1.6    42.4
17  0.36    -0.01351    35.3    1.46    0.00021165           1.7    49.4
18  0.38    -0.01265    35.3    1.48    0.00025136           1.8    49.4
19  0.4     -0.0118     28.3    1.5     0.00027536           1.9    🔴
20  0.42    -0.01097    49.4    1.52    0.00029486           2      🔴
21  0.44    -0.01011    35.3    1.54    0.00031133           2.1    🔴
22  0.46    -0.00928    42.4    1.56    0.00033505           2.2    🔴
23  0.48    -0.00846    49.4    1.58    0.00036787           2.3    🔴
24  0.5     -0.00761    42.4    1.6     0.00037578           2.4    🔴
25  0.52    -0.0068     42.4    1.62    0.00040227           2.5    🔴
26  0.54    -0.00598    42.4    1.64    0.00043238           2.6    🔴
27  0.56    -0.00517    35.3    1.66    0.00044347           2.7    🔴
28  0.58    -0.00431    49.4    1.68    0.00044462           2.8    🔴
29  0.6     -0.00352    49.4    1.7     0.00048994           2.9    🔴
30  0.62    -0.00269    49.4    1.72    0.00050601           3      🔴
31  0.64    -0.00187    42.4    1.74    0.00053589           3.1    🔴
32  0.66    -0.00102    49.4    1.76    0.00054206           3.2    🔴
33  0.68    -0.00018    49.4    1.78    0.00057367           3.3    🔴
34  0.7     0.00065     49.4    1.8     0.0005971            3.4    🔴
35  0.72    0.00149     49.4    1.82    0.00060671           3.5    🔴
36  0.74    0.00228     56.5    1.84    0.00060161           3.6    🔴

在excel中我会使用index-match。

如何使用Pandas ?

看看是否有帮助;主要使用merge:

查找Adj_Zug_Timetime2匹配的行。注意how='right;这意味着右列决定了返回结果的方式。

result = pd.merge(
df.Kraft,
df.time2,
left_on=df.Adj_Zug_Time,
right_on=df.time2,
how="right",
).Kraft
df.assign(Stress=result)
time    Weg     Kraft   Adj_Zug_Time    eps     time2   Stress
0   0.02    -0.02771    28.3    1.12    0.000000    0.0     NaN
1   0.04    -0.02690    28.3    1.14    0.000188    0.1     NaN
2   0.06    -0.02608    21.2    1.16    0.000157    0.2     NaN
3   0.08    -0.02527    21.2    1.18    0.000182    0.3     NaN
4   0.10    -0.02443    28.3    1.20    0.000181    0.4     NaN
5   0.12    -0.02362    28.3    1.22    0.000162    0.5     NaN
6   0.14    -0.02277    28.3    1.24    0.000152    0.6     NaN
7   0.16    -0.02193    28.3    1.26    0.000136    0.7     NaN
8   0.18    -0.02110    28.3    1.28    0.000151    0.8     NaN
9   0.20    -0.02028    28.3    1.30    0.000161    0.9     NaN
10  0.22    -0.01945    28.3    1.32    0.000129    1.0     NaN
11  0.24    -0.01862    21.2    1.34    0.000170    1.1     NaN
12  0.26    -0.01776    35.3    1.36    0.000139    1.2     28.3
13  0.28    -0.01689    28.3    1.38    0.000139    1.3     28.3
14  0.30    -0.01605    28.3    1.40    0.000163    1.4     28.3
15  0.32    -0.01518    35.3    1.42    0.000179    1.5     28.3
16  0.34    -0.01434    42.4    1.44    0.000223    1.6     42.4
17  0.36    -0.01351    35.3    1.46    0.000212    1.7     49.4
18  0.38    -0.01265    35.3    1.48    0.000251    1.8     49.4
19  0.40    -0.01180    28.3    1.50    0.000275    1.9     NaN
20  0.42    -0.01097    49.4    1.52    0.000295    2.0     NaN
21  0.44    -0.01011    35.3    1.54    0.000311    2.1     NaN
22  0.46    -0.00928    42.4    1.56    0.000335    2.2     NaN
23  0.48    -0.00846    49.4    1.58    0.000368    2.3     NaN
24  0.50    -0.00761    42.4    1.60    0.000376    2.4     NaN
25  0.52    -0.00680    42.4    1.62    0.000402    2.5     NaN
26  0.54    -0.00598    42.4    1.64    0.000432    2.6     NaN
27  0.56    -0.00517    35.3    1.66    0.000443    2.7     NaN
28  0.58    -0.00431    49.4    1.68    0.000445    2.8     NaN
29  0.60    -0.00352    49.4    1.70    0.000490    2.9     NaN
30  0.62    -0.00269    49.4    1.72    0.000506    3.0     NaN
31  0.64    -0.00187    42.4    1.74    0.000536    3.1     NaN
32  0.66    -0.00102    49.4    1.76    0.000542    3.2     NaN
33  0.68    -0.00018    49.4    1.78    0.000574    3.3     NaN
34  0.70    0.00065     49.4    1.80    0.000597    3.4     NaN
35  0.72    0.00149     49.4    1.82    0.000607    3.5     NaN
36  0.74    0.00228     56.5    1.84    0.000602    3.6     NaN

相关内容

最新更新