Pandas数据处理技巧

<本文是个人在Pandas工作学习中的笔记汇总,如需转载请注明出处,如需具体内容请查看各个出处>

1.pandas的DataFrame怎么把几列数据合并成为新的一列

  • 原文:https://blog.csdn.net/gangyin5071/article/details/79601386 

我有一个用于模型训练的DataFrame如下图所示:

 

 

parent_teacher_data['address'] =parent_teacher_data['country']+parent_teacher_data['province']+parent_teacher_data['city']+parent_teacher_data['county']

就可以把四列合并成新的列address 
如果某一列是非str类型的数据,那么我们需要用到map(str)将那一列数据类型做转换:

dataframe["newColumn"] = dataframe["age"].map(str) + dataframe["phone"] + dataframe["address”]

 

所以接下来我想介绍两种认为比较简便的方法

(1)第一个方法是利用pd.concat 在DataFrame后面添加两列,这种方法的缺点是不能指定位置

pd.concat([df, pd.DataFrame(columns=list('DE'))])

(2)第二种方法是利用 reindex来重排和增加列名df.reindex(columns=list('ABCDE'))

这种方法,你可以改变各列的相对位置,且保留原始列的数值,比如df.reindex(columns=list('BCADE'))

reindex 还有 fill_value 选项,可以填充NaN,例子如下df.reindex(columns=list('ABCDE'), fill_value=0)

2.Pandas —— 唯一值unique( ),计数值value_counts( )及成员资格isin( )

  • https://blog.csdn.net/starter_____/article/details/79184196 

唯一值
In [141]: obj=pd.Series(['c','a','d','a','a','b','b','c','c','c'])

In [142]: obj.unique()
Out[142]: array(['c', 'a', 'd', 'b'], dtype=object)

计数值
In [143]: obj.value_counts()
Out[143]:
c    4
a    3
b    2
d    1
dtype: int64

成员资格
In [144]: obj.isin(['a','b'])
Out[144]:
0    False
1     True
2    False
3     True
4     True
5     True
6     True
7    False
8    False
9    False
dtype: bool

得到DataFrame相关列的柱状图
In [145]: data={'Q1':[1,3,4,4,4],'Q2':[2,3,2,2,3],'Q3':[1,5,2,4,4]}

In [146]: frame=pd.DataFrame(data)

3.《Python机器学习实践指南》P7

让我们使用下面这个标注,来选择前两列和前三行

df.ix[:3,:2]



df.ix[:,3,[x for x in df.columns if 'width' in x ]] 


首先列出所有可用的唯一类:

df['class'].unique()

4.《Python机器学习实践指南》P9

df[(df['class']=='Iris-virginica')&(df['petal width']>2.2)]

从数据集中获取一些快速的描述性统计数据。

df.describe()
df.describe(percentiles=[.20,.40,.80,.90,.95])
df.corr()



5.《Python机器学习实践指南》P22

现在让我们来看看在数据框上使用apply,而不是在一个单独的序列上。现在将基于petal
 area来创建一个新的特征。
df['petal area']=df.apply(lambda r:r['petal length']*r['petal width'],axis=1)
由于在整个数据框上调用了apply,我们传送了axis=1的的参数来告诉pandas,我们要对行运用函数。

6.《Python机器学习实践指南》P31

模块train test split还会打乱数据的先后顺序,这也是非常重要的,因为原有的顺序可能包含误导实际预测的信息。
f_names=df.columns[:,4]

7.《Python机器学习实践指南》P40

mu=df[df['listingtype_value'].str.contains('Apartments For')]

8.《Python机器学习实践指南》P43

sujnd=sucln.join(attr_cln)
sujnd.T

9.《Python机器学习实践指南》P47

让我们解决列中数据类型的问题
sudf.loc[:,'Rent']=sudf['Rent'].astype(int)
索引标号318是有问题的房源,这里放弃它
sudf=sudf.drop([318])
让我们生成数据的透视图
sudf.pivot_table('Rent','Zip','Beds',aggfunc='mean')

10.《Python机器学习实践指南》P50

生成可视化热图

import folium

11.《Python机器学习实践指南》P163

在生物学中,有一个相当知名的现象,成为红色皇后的竞赛。这个想法是每个有机体都加入一种不能获得巨大优势的竞争,而只是能够跟上不断变化的、充满对立生物的环境。

这个词来自Lewis Carol的“Through the Looking Glass”一书:“现在,你要理解,拼命的奔跑你才可以保持在原地”

同样的现象每天都在金融市场出现。

12.《Python机器学习实践指南》P192

cosf.sort_values('similarity',ascending=False)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值