我有一个非常大的数据帧(大约100万行)和实验数据(60个受访者).我想将数据帧拆分为60个数据帧(每个参与者的数据帧).
在数据框(称为= data)中,有一个名为"name"的变量,它是每个参与者的唯一代码.
我尝试了以下,但没有任何反应(或者不会在一小时内停止).我打算做的是将数据帧(数据)拆分成更小的数据帧并将它们附加到列表(datalist):
import pandas as pd
def splitframe(data, name='name'):
n = data[name][0]
df = pd.DataFrame(columns=data.columns)
datalist = []
for i in range(len(data)):
if data[name][i] == n:
df = df.append(data.iloc[i])
else:
datalist.append(df)
df = pd.DataFrame(columns=data.columns)
n = data[name][i]
df = df.append(data.iloc[i])
return datalist
Run Code Online (Sandbox Code Playgroud)
我没有收到错误消息,脚本似乎永远都会运行!
有一种聪明的方法吗?
是否有可能以一种简单的方式将大量数据框放入列表中?意思是代替必须手动编写每个名称,如下所示:
list_of_df <- list(data_frame1,data_frame2,data_frame3, ....)
Run Code Online (Sandbox Code Playgroud)
我将所有数据框都加载到我的工作空间中.我将使用列表循环所有数据帧(对每个数据帧执行相同的操作).
我正在使用字符串编辑距离 (Levenshtein-distance) 来比较眼动追踪实验中的扫描路径。(现在我stringdist在 R 中使用这个包)
基本上,字符串的字母指的是 6x4 矩阵中的(凝视)位置。矩阵配置如下:
[,1] [,2] [,3] [,4]
[1,] 'a' 'g' 'm' 's'
[2,] 'b' 'h' 'n' 't'
[3,] 'c' 'i' 'o' 'u'
[4,] 'd' 'j' 'p' 'v'
[5,] 'e' 'k' 'q' 'w'
[6,] 'f' 'l' 'r' 'x'
Run Code Online (Sandbox Code Playgroud)
如果我使用的基本Levenshtein距离比较字符串,进行比较a,并g在一个字符串给出了相同的估计为comparicona和x。
例如:
'abc' compared to 'agc' -> 1
'abc' compared to 'axc' -> 1
Run Code Online (Sandbox Code Playgroud)
这意味着字符串同样(不同)相似
我希望能够以在矩阵中包含邻接的方式对字符串比较进行权重。例如之间的距离a和x应该那么之间加权为较大的a和g。
一种方法是计算矩阵中从一个字母到另一个字母的“步行”(水平和垂直步骤),然后除以最大“步行”距离(即从a到 …
我有很多x,y坐标,我根据它们之间的距离聚集在一起.现在我想计算每个x,y坐标簇的质心量度.有没有办法做到这一点?
我的坐标格式为:
coordinates_cluster = [[x1,x2,x3,...],[y1,y2,y3,...]]
Run Code Online (Sandbox Code Playgroud)
每个簇的最小长度为三个点,并且所有点都可以具有负x和y值.我希望有人可以帮助我.
最好,马丁
(我在Windows 7系统上使用带有canopy 1.1.1(32位)的python 2.7.)