如何基于两列具有相同字符串来检查它们是否匹配?

2024-09-29 17:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试分析一个数据集,它看起来像这样:

 PRESSEDKEY     PALABRA   COLOR  KEYCORR      RT
     V           HORNO     blue     a        198

基本上,我需要检查按下的键是否与正确的键匹配(正确的键是小写的,但这并不重要)。所以这里按下的键是V而不是A,所以结果是不正确的。选项有A、V和R。 我还需要看到正确和错误的反应时间之间的差异,一旦我得到它

我如何做到这一点

我想到了这一点,但这不起作用,而且可能会对每个键都过于热心,除非这是唯一的方法:

pressed_key = filtered_data['PRESSEDKEY']
keycorr = filtered_data['KEYCORR']

def correctV(pressed_key, keycorr):
   if pressed_key.str.contains('V'):
       if keycorr.str.contains('v'):
           print('Correct')
       else:
           print('Incorrect')

Tags: 数据keydataiffilteredcolorprintrt
1条回答
网友
1楼 · 发布于 2024-09-29 17:15:41

一种方法是创建一列,显示PRESSEDKEY是否等于KEYCORR,然后获得每组的平均RT(反应时间):

# Assign Y/N
df.loc[df['PRESSEDKEY'].str.lower() == df['KEYCORR'],'correct'] ='Y'
df.fillna('N',inplace=True)

# Compare RT
df.groupby('correct')['RT'].mean() 

>>> df

  PRESSEDKEY PALABRA COLOR KEYCORR   RT correct
0          V   HORNO  blue       a  198       N
1          R   HORNO  blue       r  231       Y
2          A   HORNO  blue       a  325       Y
3          V   HORNO  blue       v  111       Y
4          V   HORNO  blue       a  231       N
5          R   HORNO  blue       r  213       Y
6          A   HORNO  blue       v  251       N
7          V   HORNO  blue       a  198       N


>>> df.groupby('correct')['RT'].mean() 

correct
N    219.5
Y    220.0
Name: RT, dtype: float64

相关问题 更多 >

    热门问题