簡體   English   中英

比較數據幀python中的2列

[英]Comparing 2 columns in a dataframe python

我正在嘗試比較我的數據幀中的一行是否為某個值。

所以例如: if word = 'bleu' and ink = 'blue' ,我想在我的數據框'congruent' = 1有一個新列, if not = 0

我寫了這段代碼:

import pandas as pd
import numpy as np
import random

word = ['bleu', 'rouge', 'vert', 'jaune']

ink = ['blue', 'red', 'green', 'yellow']

my_list_word = [random.choice(word) for _ in range(60)]

df = pd.DataFrame(my_list_word, columns=["word"])

my_list_ink = [random.choice(ink) for _ in range(60)]

df['ink'] = my_list_ink

df['congruent'] = 0

print(df)

我試圖做一個循環,但它不起作用,我的全等列保持全0。

有人知道怎么做嗎?

謝謝!

我認為你正在尋找映射和匹配即

di = dict(zip(word,ink))
df['new'] = (df['word'].map(di) == df['ink']).astype(int)

    word     ink  new
0   bleu     red    0
1  jaune  yellow    1
2  jaune    blue    0
3  jaune  yellow    1
4   vert    blue    0

通過使用merge

df1=pd.DataFrame({'word':word,'ink':ink})
df.merge(df1.assign(congruent=1),on=['word','ink'],how='left').fillna(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM