python处理数据
2017-03-30 18:05
127 查看
1、遇到的情况
print u'%i行,%i列' %(total_data.shape[0], total_data.shape[1])#total_data.shape[0]行数,total_data.shape[1]列数 LTE_total_data = total_data[total_data[u'客户网络类型'].isin([u'LTE'])].reset_index()#数据筛选 del LTE_data_service['index']#删除列名为‘index’的一列数据 LTE_data_service.drop([u'客户网络类型', u'是否为流量服务投诉', u'流量服务投诉类别', u'投诉集团业务名称', u'校园名称'],axis=1)#drop方法可以删除某行(axis=1或者axis=0) df_jingfen.sort_values(by = u'手机号码')#按照某一列排序 df2 = df_data.groupby(by = u'手机号码', as_index=False).mean()#只会求数字列的均值
2、pandas消除空值和空格的混淆
在人工采集数据时,经常有可能把空值和空格混在一起,一般也注意不到在本来为空的单元格里加入了空格。这就给做数据处理的人带来了麻烦,因为空值和空格都是代表的无数据,而pandas中Series的方法notnull()会把有空格的数据也纳入进来,这样就不能完整地得到我们想要的数据了,这里给出一个简单的方法处理该问题。方法一
既然我们认为空值和空格都代表无数据,那么可以先得到这两种情况下的布尔数组。
这里,我们的DataFrame类型的数据集为df,其中有一个变量VIN,那么取得空值和空格的布尔数组为NONE_VIN。然后通过该布尔数组,就能得到我们要的数据了。
NONE_VIN = (df["VIN"].isnull()) | (df["VIN"].apply(lambda x: str(x).isspace())) df_null = df[NONE_VIN] df_not_null = df[~NONE_VIN]
方法二
直接使用Series的.apply方法来修改变量VIN中的每个值。如果发现是空格,就返回Nan,否则就返回原值。
df["VIN"]=df["VIN"].apply(lambda x: np.NaN if str(x).isspace() else x) df_null = df[df["VIN"].isnull()] df_not_null = df[df["VIN"].notnull()]
总结
- 方法一的思路就是直接判定是否为空格,把空格纳入到选择中来。
- 方法二的思路是先把空格转换为NaN,然后正常使用.isnull()或.notnull()来得到我们想要的数据
3、更改pandas dataframe列的顺序
cols = [u'手机号码', u'流水号', u'年龄', u'性别', 'LAC', 'CI'] df_data = df_data[cols]
参考:
1、如何更改DataFrame列的顺序?
2、更改pandas dataframe 列的顺序
相关文章推荐
- python中使用struct模块处理二进制数据
- 【转】python中用struct模块处理二进制数据
- python处理gzip压缩的http数据 - XII - 博客大巴
- Python学习入门基础教程(learning Python)--5.7 Python文件数据记录存储与处理
- 【语言处理与Python】11.4使用XML\11.5使用Toolbox数据
- python处理重定位数据
- Python处理Excel数据
- pandas io tools(使用python处理数据时候经常用到)
- python处理二进制数据
- python3处理不标准json数据
- python处理二进制数据
- python处理xml数据
- python中用struct模块处理二进制数据(转)
- Python—HTTP处理Gzip压缩数据
- python分析数据的处理过程及总结
- python 处理csv数据
- python中用struct模块处理二进制数据(转)
- python3处理不标准json数据
- 【语言处理与Python】11.3数据采集
- Python—HTTP处理Gzip压缩数据