Python 熊猫-神经网络的快速数据帧转换(“gausrank”)
首先,谢谢你的帮助 我有大熊猫数据帧,我需要每个列的快速秩转换: 1] 如果列仅为0-1,则不执行任何操作 2] 每列的else: a] 在列中查找唯一的值 b] 分类 c] 对于列的每个元素,将其值替换为排序唯一排序列表中的位置 可选: d] 将此新值转换为间隔[-0.99,0.99] e] 将scipy.special.erfinv应用于每个元素以获得正态分布 当我需要注意速度的时候,我该如何处理熊猫呢Python 熊猫-神经网络的快速数据帧转换(“gausrank”),python,pandas,dataframe,transformation,ranking,Python,Pandas,Dataframe,Transformation,Ranking,首先,谢谢你的帮助 我有大熊猫数据帧,我需要每个列的快速秩转换: 1] 如果列仅为0-1,则不执行任何操作 2] 每列的else: a] 在列中查找唯一的值 b] 分类 c] 对于列的每个元素,将其值替换为排序唯一排序列表中的位置 可选: d] 将此新值转换为间隔[-0.99,0.99] e] 将scipy.special.erfinv应用于每个元素以获得正态分布 当我需要注意速度的时候,我该如何处理熊猫呢 Thanx获取仅包含0或1的列: 将列类型转换为分类可以方便地处理步骤a、b和c: df
Thanx获取仅包含0或1的列: 将列类型转换为分类可以方便地处理步骤a、b和c:
df.some_column.astype('category').cat.codes
不幸的是,这似乎需要在列上循环应用,但是如果没有太多的列,这应该仍然相当快
只需减去每列的最小值,再除以最大值,即可完成重缩放。但是,由于每列的最小值为0,因此第一步是多余的
Scipy的erfinv可以只接受一个数据帧作为输入。但是,这些值必须介于-1和1之间(独占)。所以这个范围会更小
综合所有
结果是以下数据帧:
val1 val2 val3
0 -2.751064 -0.304538 0
1 -0.304538 0.304538 1
2 0.304538 -2.751064 0
3 2.751064 2.751064 1
获取仅包含0或1的列: 将列类型转换为分类可以方便地处理步骤a、b和c:
df.some_column.astype('category').cat.codes
不幸的是,这似乎需要在列上循环应用,但是如果没有太多的列,这应该仍然相当快
只需减去每列的最小值,再除以最大值,即可完成重缩放。但是,由于每列的最小值为0,因此第一步是多余的
Scipy的erfinv可以只接受一个数据帧作为输入。但是,这些值必须介于-1和1之间(独占)。所以这个范围会更小
综合所有
结果是以下数据帧:
val1 val2 val3
0 -2.751064 -0.304538 0
1 -0.304538 0.304538 1
2 0.304538 -2.751064 0
3 2.751064 2.751064 1
如果列仅为0-1。这只是在[0到1]之间浮动还是只在0到1s之间浮动?如果列仅为0-1,则它只是二进制的0或1。这只是在区间[0到1]内浮动还是只在0和1之间浮动?它只是二进制的0或1这是完美的!正是我需要的,非常感谢这太完美了!正是我需要的,非常感谢