@codejan
2017-12-11T05:02:37.000000Z
字数 2938
阅读 891
机器学习
type(A)返回A的类型
len(A)返回A的长度(对于dataframe, 返回行数)
一个表格称为一个dataframe每一列都是一个series
axis参数
默认axis = 0, 代表对每一列进行操作
可以指定为axis = 0 变为对每一行进行操作
inplace参数
默认inplace = False 代表不
每一列的命名需要注意尽量不与保留的方法名字冲突,如果A数据集某一列命名为head, 则不能用A.head调用这一列(只能用A['head'])
另一方面
返回每一列的数据类型, 如果是object代表是string
把数据集根据某一列的类别分组, 形成新的group dataframe, 有如下操作
- .getgroup("")
用于循环每一列, 如果不加的话是循环每一列的标签
for user in user_1.iterrows():
print(user)
打印每一个user的信息
这时每个user相当于一个元祖, 如下图所示
(0, user_id u_3895683
shop_id s_779325
time_stamp 2017-08-03 12:20
longitude 115.093
latitude 38.9319
...
Name: 0, dtype: object)
如果想要知道user的shop_id信息, 必须要用user[1].shop_id 而不是user.shop_id
for user in user_1():
print(user)
打印每一列的标签(str)
user_id
shop_id
time_stamp
longitude
latitude
wifi_infos
mall_id
loc:location by label(行标签和列标签)
df.loc[0:2, :]
定位前三行
df.loc[1]
代表第二行的数据,df.loc[1,"shop_id"]
代表第二行的shop_id数据, 也可以写成df.loc[1]["shop_id"]
In [4]: df.loc[df.AAA < 5,['BBB','CCC']] = 2000; df
Out[4]:
AAA BBB CCC
0 4 2000 2000
1 5 555 555
2 6 555 555
3 7 555 555
<div class="md-section-divider"></div>
使用.iloc对数字进行定位
.ix则是两者的混合(可以同时用数字和
df.discribe() 可以用统计量去来描述dataframe的每个属性,当df是group形态时尤其有用(对每一个group都会describe.
user_group = user_data.groupby("shop_id")
user_group.describe()
<div class="md-section-divider"></div>
用于对某个属性排序. by=("")
设置排序依据.
默认递增, ascending=False
设置为递减.
<div class="md-section-divider"></div>
#如果是多重标签
ana.sort_values(by=("latitude","count"),ascending=False)
<div class="md-section-divider"></div>
#代表对latitude下的count属性排序
<div class="md-section-divider"></div>
默认删除某一行, axis = 1指定删除某一列, inplace=True删除原列表中的元素, 而不仅仅是返回.
test.drop(["X1"], axis=1, inplace=True)
people = pd.Series([3000000, 85000]), index=['Albania', 'Andorra'], name='population')
从上面可以看出series由三部分组成:content, index和name, name是series的名字, index是下标, 用于定位content, 默认是从零开始的数列, 但是也可以赋值为某个字符串数组, 从而代表不同的含义.
dataframe的每一列就是一个series
dataframe有两种方法调用A列, 分别是df.A 和df["A"], 后者可以在A不存在的时候自动创建A, 并且可以解决列名和df的方法名冲突的问题.
可以对这一列引入字符串操作
例如.str.replace('$','') 可以去掉str里面的'$'符号
把某一列转化为float格式, 比如最常见的就是把string转化为float, 之后可以引入数值运算
把某一列设置为index
重新恢复index
返回index列表, 可能是数字列表, 也可能是字符串列表(比如discribe().index)
返回column name列表, 一般是字符串
return : Numpy representation of NDFrame
把某一列数据转化为日期数据
仅读取前两列数据 usecols=[0,1]
仅读取前三行数据 nrows=3
A和B是dataframe的两列(内容为属性值), 可以对这两列一起计数形成表格
合并A与B两个series, 相同的index合并成一行, 不同的index一个保留原数值, 另一个赋值为NaN