我试图在现有的数据帧中创建一个新变量(列)。你知道吗
Participant Session Trial_number Accuracy Block
G01S01 1 3 1 1
G01S02 1 4 1 2
G02S01 1 5 1 5
G01S01 1 6 1 8
G01S01 1 7 1 10
基本上,我想基于Block列创建一个新变量“Epoch”。1-4之间的块值属于Epoch 1、Epoch 2和其他四个值,依此类推。它看起来像这样:
Participant Session Trial_number Accuracy Block Epoch
G01S01 1 3 1 1 1
G01S02 1 4 1 2 1
G02S01 1 5 1 5 2
G01S01 1 6 1 8 2
G01S01 1 7 1 10 3
另外,我还想基于Participant ID创建另一个变量,如果它以1结尾,那么Participant属于组1,如果它以2结尾,那么Participant属于组2。你知道吗
我试着做第一道题,但基本上不起作用。你知道吗
import pandas as pd
df = pd.read_csv('merge.csv')
Epoch = []
x = 0
while x < 179424:
if df['Block'][x] < 5:
Epoch == 1
elif 4 < df['Block'][x] < 9:
Epoch == 2
elif 8 < df['Block'][x] < 13:
Epoch == 3
elif 12 < df['Block'][x] < 17:
Epoch == 4
else:
Epoch == 5
x += 1
(179424是我的电子表格中的行数)
我想,您应该使用数据帧的
apply
方法。该方法将函数作为参数,并将该函数应用于数据帧的每一行(或每一列,具体取决于axis
的值)。从您的代码示例中,我怀疑这将是一个有意义的函数:然后,我就这样应用它:
我希望这有帮助!]你知道吗
可以使用
//
提取epoch编号,并使用apply
提取“Block”列:您可以为此使用^{} 来创建箱子并基于这些箱子分配标签:
相关问题 更多 >
编程相关推荐