
数据预处理遇到的坑
野边的路猫
一个不专业的python数据处理者,科研划水大师。
展开
-
在dataframe中如何对某列的值进行分割或者提取
#本方法主要是无法使用split的情况,即文本中没有明显分隔符。在数据预处理的时候,会将单条数据特征组合成为文本放入某列中。一般情况下,会有分割符将其分割开,推荐使用split方法#但是也可能会出现类似下面的文本,没有明显分割符。此时需要考虑str[\d:\d]的格式对文本进行裁剪,获取新列。这里,我希望把年份提取出来作为新列。那么就是variable列的[3:7]部分。#我先尝试了NTL_reject['year'] = NTL_reject['variable'][3:7],发现并不能提取出我原创 2020-11-09 10:36:02 · 9845 阅读 · 2 评论 -
按照某特征值筛选dataframe中的列
#本文主要争对需要处理的数据列名命名比较有规律,或者你需要提取的列的名字能够总结出某一特性这也是我处理数据遇到的坑,搜索了半天都没有找到语句易读的处理办法。。。后来自己慢慢翻函数找的。。。#主要语句filter()filter里面主要填两个参数:①函数 ②对象最后会根据函数判断对象,返回布尔值(True or False),最终返回True的值。#处理思路对象——明显是dataframe含有的所有列函数——你总结出来的需要提取的列的特性,比如列名长度、都含有某文本等#例子从原数据看,明原创 2020-11-08 21:17:48 · 613 阅读 · 0 评论 -
如何更快计算Dataframe里某一列中,上下两值的差值
#写这个的初衷是想在数据量很大的时候,在对dataframe里面的数据按照某规律进行排序后,通过循环计算相邻两行之间的差距非常耗时的问题。在写循环的时候,希望大家考虑是不是可以使用矩阵运算来替代循环,节约程序运行时间。这个真的非常有用,特别是对于数据量特别大的情况下,使用for循环的时间远远超过使用矩阵运算的时间。#先导包import time import numpy as np import pandas as pd #构造一个dataframeL = pd.DataFrame({0:[原创 2020-11-06 10:53:55 · 4914 阅读 · 1 评论 -
如何实现正确的矩阵相乘
当希望对某一指标数据进行大量的换算时,我最开始一般都采用了if循环。特别是最近在学着处理一些DSPM-OLS的夜晚灯光图形,需要通过非衰变区域(0-62)推测衰变区域(63)的像素块的数据。后来发现if循环真的特别耗时,虽然保证每次调用和填入的新值不会填错位置,但是效率非常低下。为了避免这种低效率代码,我后来发现可以考虑构造矩阵运算。可能对于科班出身的人来说,这是很容易想到的解决办法。矩阵运算一般有两种:(1) 行数和列数相同的矩阵,可以实现同位置元素的四则运算import numpy as np原创 2020-11-03 17:38:44 · 1186 阅读 · 1 评论