[英]Create a new column in Pandas Dataframe based on the 'NaN' values in another column
[英]Create a new column in pandas dataframe with values from another dataframe, based on date
我有 2 個數據框。
首先 dataframe 包含 PLN 數據:
date polarity subjectivity
0 2022-03-25 0.118771 0.517508
1 2022-03-28 0.136532 0.555640
2 2022-04-04 0.447222 0.419444
3 2022-04-11 -0.022222 0.397222
4 2022-04-18 -0.098333 0.526111
5 2022-04-20 -0.077778 0.644444
6 2022-04-22 0.187500 0.437500
7 2022-04-25 0.350000 0.375000
第二個 dataframe 包含股票數據:
open high low close adjclose volume date
0 277.559998 282.500000 272.059998 282.190002 282.190002 42549400 2022-03-28
1 286.950012 289.459991 279.799988 286.559998 286.559998 48898400 2022-03-29
2 283.040009 284.959991 275.029999 276.899994 276.899994 46348700 2022-03-30
3 277.820007 282.480011 272.700012 272.859985 272.859985 52344000 2022-03-31
4 273.750000 274.959991 262.670013 267.119995 267.119995 51653400 2022-04-01
5 267.279999 275.579987 266.130005 273.600006 273.600006 39712000 2022-04-04
6 272.540009 273.190002 258.200012 259.309998 259.309998 43661500 2022-04-05
7 249.339996 253.000000 240.029999 244.070007 244.070007 70383300 2022-04-06
8 244.410004 247.220001 234.779999 242.080002 242.080002 55799200 2022-04-07
9 239.169998 239.229996 230.619995 231.190002 231.190002 52409100 2022-04-08
10 222.139999 223.199997 216.600006 219.169998 219.169998 57520700 2022-04-11
我想要的是以最有效的方式基於日期字段在第二個 dataframe(具有股票數據的那個)中創建“極性”和“主觀性”列。
編輯添加所需的 output:
open high low close adjclose volume date polarity subjetivity
0 277.559998 282.500000 272.059998 282.190002 282.190002 42549400 2022-03-28 0.136532 0.555640
1 286.950012 289.459991 279.799988 286.559998 286.559998 48898400 2022-03-29 NaN NaN
2 283.040009 284.959991 275.029999 276.899994 276.899994 46348700 2022-03-30 NaN NaN
3 277.820007 282.480011 272.700012 272.859985 272.859985 52344000 2022-03-31 NaN NaN
4 273.750000 274.959991 262.670013 267.119995 267.119995 51653400 2022-04-01 NaN NaN
5 267.279999 275.579987 266.130005 273.600006 273.600006 39712000 2022-04-04 0.447222 0.419444
6 272.540009 273.190002 258.200012 259.309998 259.309998 43661500 2022-04-05 NaN NaN
7 249.339996 253.000000 240.029999 244.070007 244.070007 70383300 2022-04-06 NaN NaN
8 244.410004 247.220001 234.779999 242.080002 242.080002 55799200 2022-04-07 NaN NaN
9 239.169998 239.229996 230.619995 231.190002 231.190002 52409100 2022-04-08 NaN NaN
10 222.139999 223.199997 216.600006 219.169998 219.169998 57520700 2022-04-11 -0.022222 0.397222
df2.merge(df1, how = 'left', on = 'date')
open high low ... date polarity subjectivity
0 277.559998 282.500000 272.059998 ... 2022-03-28 0.136532 0.555640
1 286.950012 289.459991 279.799988 ... 2022-03-29 NaN NaN
2 283.040009 284.959991 275.029999 ... 2022-03-30 NaN NaN
3 277.820007 282.480011 272.700012 ... 2022-03-31 NaN NaN
4 273.750000 274.959991 262.670013 ... 2022-04-01 NaN NaN
5 267.279999 275.579987 266.130005 ... 2022-04-04 0.447222 0.419444
6 272.540009 273.190002 258.200012 ... 2022-04-05 NaN NaN
7 249.339996 253.000000 240.029999 ... 2022-04-06 NaN NaN
8 244.410004 247.220001 234.779999 ... 2022-04-07 NaN NaN
9 239.169998 239.229996 230.619995 ... 2022-04-08 NaN NaN
10 222.139999 223.199997 216.600006 ... 2022-04-11 -0.022222 0.397222
嘗試這個
df2.merge(df, on='date', how='left')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.