<本文是个人在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)