甲乙小朋友的房子

甲乙小朋友很笨,但甲乙小朋友不会放弃

0%

pandas相关技巧

用pandas求差集

从df1中去除掉df2的内容

data={'id':[1,2,3]} data2={'id':[3,1,4]} df1=pd.DataFrame(data) df2=pd.DataFrame(data2) print df1 print df2 df3=df1[~df1['id'].isin(df2['id'])] print df3

求某个时间区间的数据集

tart_t='2016-04-05 00:00:00' end_t='2016-04-16 00:00:00' action.time=pd.to_datetime(action.time,format='%Y-%m-%d %H:%M:%S') starttime=pd.to_datetime(start_t,format='%Y-%m-%d %H:%M:%S') endtime=pd.to_datetime(end_t,format='%Y-%m-%d %H:%M:%S') action=action[(action.time<endtime)&(action.time>=starttime)]

dummies

我理解get_dummies是将拥有不同值的变量转换为0/1数值。打个比方,小明有黄、红、蓝三种颜色的帽子,小明今天戴黄色帽子用1表示,红色帽子用2表示,蓝色帽子用3表示。但1、2、3数值大小本身是没有意义的,只是用于区分帽子的颜色,因此在实际分析时,需要将1、2、3转化为0、1,如下代码所示:

import pandas as pd
xiaoming=pd.DataFrame([1,2,3],index=['yellow','red','blue'],columns=['hat'])
print(xiaoming)
hat_ranks=pd.get_dummies(xiaoming['hat'],prefix='hat')
print(hat_ranks.head())

            hat
yellow    1
red       2
blue      3
        hat_1  hat_2  hat_3
yellow      1      0      0
red         0      1      0
blue        0      0      1

其它to DataFrame

dict to DataFrame

pd.DataFrame(d.items())

fillna

用同组的均值填补

>>> df
  name  value
0    A      1
1    A    NaN
2    B    NaN
3    B      2
4    B      3
5    B      1
6    C      3
7    C    NaN
8    C      3
>>> df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
>>> df
  name  value
0    A      1
1    A      1
2    B      2
3    B      2
4    B      3
5    B      1
6    C      3
7    C      3
8    C      3

ipython运行python

启动新的namespace运行: %run main.py

在原有的namespace运行:%run -i main.py