![](/img/trans.png)
[英]How to extract values from x column in pandas df, where y column in df == list(i)
[英]Extract value from list of values in one df column by comparing with other df column
數據框包含兩列。
| Extraction | Actual |
| -------------------------------- | --------- |
| [1_CHECK_90,2_SAVE_43,3_GO_56] | 2_SAVE |
| [1_FIN_54,2_CHECK_22] | 1_FIN_54 |
| [1_L_32,2_Y_79,4_X_66] | 2_Y_79 |
| [5_T_88] | NA |
通過與 Extraction 列左側的數字進行比較,將 Extraction 轉換為 Actual。
def extract_actual(row):
try:
a =[]
for i in row['Extraction']:
for j in i:
for k in j.split("_"):
# print(k)
for l in row['Actual']:
if k == l:
a.append(j)
return a
except:
a =[]
return a
我嘗試使用上面的 function。它工作正常但對於 Actual='NA' 沒有返回。
你能試試這個嗎
import pandas as pd
df = pd.DataFrame({'Extraction': [['1_CHECK', '2_SAVE', '3_GO'],
['1_FIN', '2_CHECK'], ['1_L', '2_Y', '4_X'], ['5_T']],
'Actual': ['2_SAVE', '1_FIN', '2_Y', None]})
# get equal values index true false values
tFdf = df[df.columns.difference(["Expected"])].eq(df["Actual"], axis=0)
# Assign matched values
df["Extraction"].loc[tFdf["Actual"]] = df["Actual"][tFdf["Actual"]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.