我想在以下问题上获得您的帮助:
我进行了两次心理学实验,并从我的受试者中检索了反应时间。所有这些数据都提交到数据帧中的各种 .xlsx 文件(每个实验一个文件),并使用 Python 创建了一个包含所有这些文件的单个 .xlsx 文件(通过 .append)我的主文件的索引是主题 ID从1开始。
我现在遇到的问题是我有 12 个主题,而 Python 似乎没有遵循自然排序规则......我所拥有的是主题 10、11、12 位于主题 1 - 9 之前(这搞砸了我检索我的数据)。我以这样的方式使用了 natsort:
MASTER_DF_FLAT.index = natsorted(MASTER_DF_FLAT.index)
MASTER_DF_FV.index = natsorted(MASTER_DF_FV.index)
这解决了索引的问题,但是行上的数据不会遵循新的顺序(在 excel 上,您可以“扩展选择”并且您侥幸逃脱)。知道如何解决这个问题吗?
编辑:这是使用 10 多个主题对数据进行格式化的方式:
subject block trial condition RT
10 1 1 1 0,677044666
10 1 2 12 0,556960872
10 1 3 2 0,51685685
10 1 4 5 0,766190078
这是来自主题 1 的数据:
subject block trial condition RT
1 1 1 1 0,677044666
1 1 2 12 0,556960872
1 1 3 2 0,51685685
1 1 4 5 0,766190078
如您所见,RT 没有改变(其他值也没有改变)
谢谢你的帮助!
EDIT1:这是我保存文件的方式:
我这样做:)这正是我的代码:
for f in files:
data = os.path.join(data_dir,f)
df = pd.read_excel(data)
df.set_index('subject', inplace = True)
concatenated = pd.concat([block, trial, condition, RT, SOA, acc, ISI], axis=1)
if 'FV' not in f:
flatDFs.append(concatenated)
else:
fvDFs.append(concatenated)
MASTER_DF_FLAT = pd.concat(flatDFs)
writerFlat = pd.ExcelWriter('MASTER_FILE_FLAT.xlsx')
MASTER_DF_FLAT.to_excel(writerFlat,'Sheet1')
writerFlat.save()
如您所见,我的 .xlsx 文件中的索引确实是主题。一切正常,只是元素的顺序!