python整形是什么_Python中的数据整形

我正在处理由eyelink生成的数据。csv(从asc转换而来)基本上是一个大的顺序列表,即不创建列,因此,例如一行将具有“start_trial 1”,下一行将具有x和y坐标,接下来的N行也将在到达“PreBeep1_1st_Sketchpad”行和最终的“start_trial 2”行之前。在

我想知道是否有人对如何操作这些“堆叠”数据并将其转换为长格式数据有什么建议?在

以下是从csv中提取数据时的外观:MSG 12892743 start_trial 1 SCNB

12892743 757.0 361.7 5916.0 ... SCNB

MSG 12892744 PreBeep1_1st_Sketchpad SCNB

12892744 756.7 361.7 5920.0 ... SCNB

12892745 756.1 362.2 5924.0 ... SCNB

MSG 12892746 order of frames: SCNB

12892746 755.8 362.3 5928.0 ... SCNB

12892747 756.7 362.3 5927.0 ... SCNB

MSG 12892748 crosshair SCNB

12892748 757.8 361.8 5928.0 ... SCNB

12892749 758.4 361.8 5930.0 ... SCNB

MSG 12892750 sketchpad SCNB

12892750 758.1 361.7 5934.0 ... SCNB

12892751 758.3 361.7 5938.0 ... SCNB

MSG 12892752 sketchpad SCNB

12892752 759.1 361.9 5948.0 ... SCNB

12892753 760.4 362.7 5956.0 ... SCNB

MSG 12892754 sketchpad SCNB

12892754 761.7 363.5 5964.0 ... SCNB

12892755 763.9 364.0 5966.0 ... SCNB

MSG 12892756 buffer1 SCNB

12892756 765.6 364.1 5970.0 ... SCNB

12892757 766.2 364.3 5972.0 ... SCNB

MSG 12892758 Diode1 SCNB

12892758 765.2 364.3 5973.0 ... SCNB

12892759 764.1 364.5 5964.0 ... SCNB

12892760 763.9 364.7 5955.0 ... SCNB

理想情况下,我希望有单独的专栏:

^{pr2}$

如果有帮助,分隔符将\t放在csv文件中。在

可以看出,数据是按从上到下的顺序逐行写入的,而不是按我想要的方式组织成列。在

“…”也是实际值。在

关于将包含帧ID的列,如“start_trial”和“PreBeep1_1st_Sketchpad”,我希望在列中重复该帧的名称,直到遇到新的帧为止。在

任何帮助或建议将不胜感激。在

编辑:输出应如下所示:Trial ID Frame ID X-CoOr Y-CoOr Time

SCNB Start_Trial 757.0 361.7 5916.0

SCNB PreBeep1_1st_Sketchpad 756.7 361.7 5920.0

SCNB PreBeep1_1st_Sketchpad 756.1 362.2 5924.0

感谢您抽出时间阅读。在

编辑:

以下是我使用的代码:file2 = open('P1E2E_Both_New_trial_data.csv', 'rb')

Long_Format = open('P1E2E_Long_Format.csv', 'w')

writer1 = csv.writer(Long_Format, delimiter = '\t')

#First create column headings

columns = ["Trial ID"] + ['Frame ID'] + ['X-CoOr'] + ['Y-CoOr'] + ['Time']

writer1.writerow(columns)

reader1 = csv.reader(file2, delimiter = '\t')

for row in reader1:

# if statement here to skip blank lines

if len(row) > 1:

if 'start_trial' in row[1]:

label = [row[3]] + ['start_trial']

writer1.writerow(label)

file2.close() #

Long_Format.close()

上述输出为:Trial ID Frame ID X-CoOr Y-CoOr Time

SCNB start_trial

RCL start_trial

SCR start_trial

。。。等等。在

我的问题在于我不知道从这里该怎么办。我的方法即使有效,也会非常低效。我不知道如何告诉python继续读取if语句中标签“Start_Trial”后面的行,以及如何将第[2]行和第[3]行中的x和y CoOr值写入到该标签后面的相应列中。有道理吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值