import numpy as np
import pandas as pd

数据聚合和分组运算

先说一下什么是分组运算,什么是聚合。一个表格型数据集,我们需要对某一标签下的数据进行运算,对于具有某种特性的数据进行运算。对于数据分析的角度,我们想到的就是将这个表格型数据集分隔--运算---合并

GroupBy机制

正如上面我们讲的,我们将自己数据集分隔,然后运算,最后聚合。在pandas里面,有groupby可以完成,为了更好的理解分隔--运算--合并的过程,下面开始拿例子看看:

frame = pd.DataFrame({'key1':['a','s','a','s','g'],'key2':['one','two','three','four','five'],'data1':range(5),'data2':np.random.randn(5)})
print(frame)
key1   key2  data1     data2
0    a    one      0 -0.235398
1    s    two      1 -1.273801
2    a  three      2 -1.275459
3    s   four      3  0.959562
4    g   five      4  0.880569
#以key1分离数据
grouped = frame.groupby(frame['key1'])
for name,result in grouped:print('分离标签:')print(name)print('分离数据:')print(result)print('====================')
分离标签:
a
分离数据:key1   key2  data1     data2
0    a    one      0 -0.235398
2    a  three      2 -1.275459
====================
分离标签:
g
分离数据:key1  key2  data1     data2
4    g  five      4  0.880569
====================
分离标签:
s
分离数据:key1  key2  data1     data2
1    s   two      1 -1.273801
3    s  four      3  0.959562
====================
#对数据做运算+合并
print(grouped.mean())
data1     data2
key1
a         1 -0.755429
g         4  0.880569
s         2 -0.157120

上面使用grouped.mean()的运算步骤是:先分别算各自的mean,然后在做了合并

我们可以分析,groupby的so传入的是一个类list(可以是有索引关系的map和Series),我们通过传入的类list,将数据分隔,然后运算和合并,看下面例子

state = ['lala','hahah','lala','mumumu','xixixi']
state
['lala', 'hahah', 'lala', 'mumumu', 'xixixi']
frame[['data1','data2']].groupby(state)
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000000088B8D30>
for name,result in frame[['data1','data2']].groupby(state):print('分离标签:')print(name)print('分离数据:')print(result)print('====================')
分离标签:
hahah
分离数据:data1     data2
1      1 -1.273801
====================
分离标签:
lala
分离数据:data1     data2
0      0 -0.235398
2      2 -1.275459
====================
分离标签:
mumumu
分离数据:data1     data2
3      3  0.959562
====================
分离标签:
xixixi
分离数据:data1     data2
4      4  0.880569
====================

做一个总结:groupby里面传入的就是一个类list数据,它的机制是会根据你传入的类list的数据进行分隔,哪怕把这个数据之前不属于这个表格类型数据。要被运算的表格类型数据要传输的是它的可被运算数据,提取方式是DataFrame数据的提取方式,如果不进行选择,那么就默认为所有可运算的数据

#再看一个例子
print(frame.groupby(frame['key1']).mean())
data1     data2
key1
a         1 -0.755429
g         4  0.880569
s         2 -0.157120

上面的例子是选取了key1这个列,然后算的是所有数据的平均值,这时候结果自动屏蔽key2的元素。这个key2的元素就是所谓的【麻烦列】

对分组迭代

其实分组迭代我们在之前已经见过,就是使用for循环来将数据输出,但是里面还是会有一些其他的东西来做分享

#例子1
for names,result in frame.groupby(['key1','key2']):  #多个元素的传入,不能写为frame[['key1','key2']]print('分离标签:')print(names)print('分离数据:')print(result)print('====================')
分离标签:
('a', 'one')
分离数据:key1 key2  data1     data2
0    a  one      0 -0.235398
====================
分离标签:
('a', 'three')
分离数据:key1   key2  data1     data2
2    a  three      2 -1.275459
====================
分离标签:
('g', 'five')
分离数据:key1  key2  data1     data2
4    g  five      4  0.880569
====================
分离标签:
('s', 'four')
分离数据:key1  key2  data1     data2
3    s  four      3  0.959562
====================
分离标签:
('s', 'two')
分离数据:key1 key2  data1     data2
1    s  two      1 -1.273801
====================

从多个维度分隔时,groupby传入的是带有标签的list(此时传入frame[['key1','key2']]会报错)

#例子2
state = frame.dtypes
state
key1      object
key2      object
data1      int64
data2    float64
dtype: object
for name,result in frame.groupby(state,axis=1):print('分离标签:')print(name)print('分离数据:')print(result)print('====================')
分离标签:
int64
分离数据:data1
0      0
1      1
2      2
3      3
4      4
====================
分离标签:
float64
分离数据:data2
0 -0.235398
1 -1.273801
2 -1.275459
3  0.959562
4  0.880569
====================
分离标签:
object
分离数据:key1   key2
0    a    one
1    s    two
2    a  three
3    s   four
4    g   five
====================

我们一般是根据行数据的做分隔(默认axis=0),如果是用列数据做分隔,那么你需要使用axis=1,下面再做一个例子

frame.iloc[1]
key1          s
key2        two
data1         1
data2   -1.2738
Name: 1, dtype: object
frame['key1']
0    a
1    s
2    a
3    s
4    g
Name: key1, dtype: object
for name,result in frame.groupby(frame.iloc[1],axis=1):print('分离标签:')print(name)print('分离数据:')print(result)print('====================')
分离标签:
-1.2738009951202727
分离数据:data2
0 -0.235398
1 -1.273801
2 -1.275459
3  0.959562
4  0.880569
====================
分离标签:
1
分离数据:data1
0      0
1      1
2      2
3      3
4      4
====================
分离标签:
s
分离数据:key1
0    a
1    s
2    a
3    s
4    g
====================
分离标签:
two
分离数据:key2
0    one
1    two
2  three
3   four
4   five
====================

我们使用迭代发现,它返回了两类数据,所分隔的数据名称,和所分隔的数据本身,这个很像一个字典,我们在这个时候,也会选择将他转化为字典

dic = dict(list(frame.groupby(['key1','key2'])))
print(dic)
{('a', 'one'):   key1 key2  data1     data2
0    a  one      0 -0.235398, ('a', 'three'):   key1   key2  data1     data2
2    a  three      2 -1.275459, ('g', 'five'):   key1  key2  data1     data2
4    g  five      4  0.880569, ('s', 'four'):   key1  key2  data1     data2
3    s  four      3  0.959562, ('s', 'two'):   key1 key2  data1     data2
1    s  two      1 -1.273801}

选取一列或一列的子集

#看例子
print(frame.groupby(['key1','key2'])['data1'].mean())
key1  key2
a     one      0three    2
g     five     4
s     four     3two      1
Name: data1, dtype: int64

从上面的例子可以看出,这样的逻辑是更清楚的,frame.groupby:表示表格型数据被分隔,frame.groupby([]):找到了被分割的列,frame.groupby([])[[]]:表示所运算的数据

上面的表示方法是前面:frame[].groupby([])的语法糖

通过字典和Series来分组

运用场景:你的数据的命名没有什么区分度和相关性,但是数据本身是有区分度和相关性的,那你就面临着给不同轴的重新命名的

frame = pd.DataFrame({'key1':[4,5,6,7,8],'key2':[2,3,4,5,2],'data1':range(5),'data2':np.random.randn(5)})
print(frame)
key1  key2  data1     data2
0     4     2      0 -0.057764
1     5     3      1 -1.026594
2     6     4      2 -0.297078
3     7     5      3 -0.144781
4     8     2      4 -0.206902
state = {'key1':'hebei','key2':'hebei','data1':'handan','data2':'zibo'}
test = frame.groupby(state,axis=1)
test.mean()

handan hebei zibo 0 0.0 3.0 -0.057764 1 1.0 4.0 -1.026594 2 2.0 5.0 -0.297078 3 3.0 6.0 -0.144781 4 4.0 5.0 -0.206902

如果是传入Series也可以达到相同的效果

mapping = pd.Series(['hebi','hebi','handn','zibo'],index=['key1','key2','data1','data2'])
mapping
key1      hebi
key2      hebi
data1    handn
data2     zibo
dtype: object
test = frame.groupby(mapping,axis=1)
print(test.mean())
handn  hebi      zibo
0    0.0   3.0 -0.057764
1    1.0   4.0 -1.026594
2    2.0   5.0 -0.297078
3    3.0   6.0 -0.144781
4    4.0   5.0 -0.206902

通过函数进行分组

首先我们要再次强调我们分组的条件是什么。分组的中的纲领是,根据我们的意愿来分组,如果你的默认的分组方式不能满足你的需求,那么你需要制定一些规则:前面我们学的规则有(重命名,不同列的选取)。

使用函数的方法可以大大的加强分组的灵活性

frame = pd.DataFrame(np.ceil(np.random.uniform(1,29,(5,5))),index=[1,2,3,1,2],columns=['a','s','d','f','a'])   #字典方式录入和以columnindex方式录入不同
print(frame)
a     s     d     f     a
1  15.0  22.0   7.0   8.0  26.0
2  19.0  23.0  11.0  17.0   2.0
3   8.0  15.0  10.0  21.0  21.0
1   2.0   6.0  19.0  15.0   9.0
2   4.0  19.0   4.0  15.0  15.0
print(frame.groupby(frame.columns,axis=1).sum())
a     d     f     s
1  41.0   7.0   8.0  22.0
2  21.0  11.0  17.0  23.0
3  29.0  10.0  21.0  15.0
1  11.0  19.0  15.0   6.0
2  19.0   4.0  15.0  19.0

解释一下上面的过程,我们使用了len函数,来统计columns上的字符长度,然后对于相同长度的string做了统计,然后计算了mean()

根据索引级别分组

这个是好理解的,在层次化索引下,我们的数据也呈现出规律,通过不同的索引级别,我们可以做出区分

frame = pd.DataFrame(np.ceil(np.random.uniform(1,100000,(4,4))),columns=[['tianzhu','tianzhu','wuwei','wuwei'],['bwjb','hebw','lala','mwmw']])
print(frame)
tianzhu             wuwei         bwjb     hebw     lala     mwmw
0  21777.0  49416.0  97519.0  62829.0
1  91935.0  74657.0  30804.0  45317.0
2  79872.0  58847.0   8391.0  22251.0
3  62834.0  45321.0  11197.0  87951.0
frame.columns.names=['name','iii']
print(frame)
name  tianzhu             wuwei
iii      bwjb     hebw     lala     mwmw
0     21777.0  49416.0  97519.0  62829.0
1     91935.0  74657.0  30804.0  45317.0
2     79872.0  58847.0   8391.0  22251.0
3     62834.0  45321.0  11197.0  87951.0
print(frame.groupby(level='name',axis=1).mean())
name  tianzhu    wuwei
0     35596.5  80174.0
1     83296.0  38060.5
2     69359.5  15321.0
3     54077.5  49574.0

数据集合

我们前面已经使用了mean()函数,对于这个函数,我们可将离散的数据,做聚合运算,然后返回计算结果

#方式1
frame = pd.DataFrame(np.ceil(np.random.uniform(1,29,(5,5))),index=[1,2,3,1,2],columns=['a','s','d','f','a'])   #字典方式录入和以columnindex方式录入不同
print(frame)
a     s     d     f     a
1   4.0   7.0  27.0  24.0   5.0
2  11.0  17.0   8.0  20.0  13.0
3  24.0   6.0  25.0   9.0  25.0
1  21.0  26.0  22.0  16.0   2.0
2  10.0  16.0   6.0  26.0  20.0
print(frame.groupby(frame.columns,axis=1).mean())
a     d     f     s
1   4.5  27.0  24.0   7.0
2  12.0   8.0  20.0  17.0
3  24.5  25.0   9.0   6.0
1  11.5  22.0  16.0  26.0
2  15.0   6.0  26.0  16.0

对于合并的方法,我们也可以使用函数的方法来将数据整合,将函数传入agg或者aggregate()中

def top_to_top(arr):return arr.max()-arr.min()
frame = pd.DataFrame(np.ceil(np.random.uniform(1,29,(5,5))),index=[1,2,3,1,2],columns=['a','s','d','f','a'])   #字典方式录入和以columnindex方式录入不同
print(frame)
a     s     d     f     a
1   8.0  16.0  14.0  15.0   4.0
2  14.0  28.0  28.0  16.0  18.0
3  14.0  16.0  27.0  21.0  20.0
1   2.0  18.0   9.0  17.0  13.0
2  12.0  24.0  20.0  20.0  16.0
print(frame.groupby(frame.index).agg(top_to_top))
a    s    d    f    a
1  6.0  2.0  5.0  2.0  9.0
2  2.0  4.0  8.0  4.0  2.0
3  0.0  0.0  0.0  0.0  0.0
#还可以使用describe
print(frame.groupby(frame.columns).describe())
a                                                   s        ...      f  count  mean       std   min   25%   50%   75%   max count  mean  ...    75%
a   2.0  10.0  2.828427   8.0   9.0  10.0  11.0  12.0   2.0  20.0  ...  18.75
d   1.0  14.0       NaN  14.0  14.0  14.0  14.0  14.0   1.0  16.0  ...  21.00
f   1.0   2.0       NaN   2.0   2.0   2.0   2.0   2.0   1.0  18.0  ...  17.00
s   1.0  14.0       NaN  14.0  14.0  14.0  14.0  14.0   1.0  28.0  ...  16.00a                                                max count  mean       std   min   25%   50%   75%   max
a  20.0   2.0  10.0  8.485281   4.0   7.0  10.0  13.0  16.0
d  21.0   1.0  20.0       NaN  20.0  20.0  20.0  20.0  20.0
f  17.0   1.0  13.0       NaN  13.0  13.0  13.0  13.0  13.0
s  16.0   1.0  18.0       NaN  18.0  18.0  18.0  18.0  18.0[4 rows x 40 columns]

面向列的多函数应用

我们前面的聚合运算可以发现,我们单次的使用了聚合函数。但是如果,我多次的使用不同的函数,那么我要怎么做呢?

tips = pd.read_csv('E:/Datawhale数据分析/PythonForDataAnalysis-master/PythonForDataAnalysis-master/ch08/tips.csv')
print(tips.head())
total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4
tips['tips_pct'] = tips['tip']/tips['total_bill']
print(tips.head())
total_bill   tip     sex smoker  day    time  size  tips_pct
0       16.99  1.01  Female     No  Sun  Dinner     2  0.059447
1       10.34  1.66    Male     No  Sun  Dinner     3  0.160542
2       21.01  3.50    Male     No  Sun  Dinner     3  0.166587
3       23.68  3.31    Male     No  Sun  Dinner     2  0.139780
4       24.59  3.61  Female     No  Sun  Dinner     4  0.146808
groups = tips.groupby(['day','smoker'])
groups['tips_pct'].mean()
day   smoker
Fri   No        0.151650Yes       0.174783
Sat   No        0.158048Yes       0.147906
Sun   No        0.160113Yes       0.187250
Thur  No        0.160298Yes       0.163863
Name: tips_pct, dtype: float64
groups['tips_pct'].agg('mean')
day   smoker
Fri   No        0.151650Yes       0.174783
Sat   No        0.158048Yes       0.147906
Sun   No        0.160113Yes       0.187250
Thur  No        0.160298Yes       0.163863
Name: tips_pct, dtype: float64
print(groups['tips_pct'].agg(['mean'])) #注意与上面的区别
mean
day  smoker
Fri  No      0.151650Yes     0.174783
Sat  No      0.158048Yes     0.147906
Sun  No      0.160113Yes     0.187250
Thur No      0.160298Yes     0.163863
print(tips.groupby(['day','smoker']).agg(['mean']))
total_bill       tip      size  tips_pctmean      mean      mean      mean
day  smoker
Fri  No      18.420000  2.812500  2.250000  0.151650Yes     16.813333  2.714000  2.066667  0.174783
Sat  No      19.661778  3.102889  2.555556  0.158048Yes     21.276667  2.875476  2.476190  0.147906
Sun  No      20.506667  3.167895  2.929825  0.160113Yes     24.120000  3.516842  2.578947  0.187250
Thur No      17.113111  2.673778  2.488889  0.160298Yes     19.190588  3.030000  2.352941  0.163863

上面的操作大概可以分为两类:1.将数据分隔之后,不断的调用其中某块数据做聚合运算 2.在调用聚合运算时,调用的方法是(['调用方法']),可以显示在运算之后的数据表中

多种的聚合运算:

print(grouped.agg(['mean','sum','std',top_to_top]))  #top_to_top函数上面已经调用过
data1                              data2                               mean sum       std top_to_top      mean       sum       std top_to_top
key1
a        1   2  1.414214          2 -0.755429 -1.510857  0.735434   1.040061
g        4   4       NaN          0  0.880569  0.880569       NaN   0.000000
s        2   4  1.414214          2 -0.157120 -0.314239  1.579226   2.233363

以‘没有行索引’的形式返回聚合数据

这个可以使用reset_index()来完成

print(tips.groupby(['day','smoker'],as_index=False).agg(['mean'],as_index=False).reset_index())
day smoker total_bill       tip      size  tips_pctmean      mean      mean      mean
0   Fri     No  18.420000  2.812500  2.250000  0.151650
1   Fri    Yes  16.813333  2.714000  2.066667  0.174783
2   Sat     No  19.661778  3.102889  2.555556  0.158048
3   Sat    Yes  21.276667  2.875476  2.476190  0.147906
4   Sun     No  20.506667  3.167895  2.929825  0.160113
5   Sun    Yes  24.120000  3.516842  2.578947  0.187250
6  Thur     No  17.113111  2.673778  2.488889  0.160298
7  Thur    Yes  19.190588  3.030000  2.352941  0.163863

关于apply()的一般运用

我们知道表格型数据本身我们要做复杂的运算时,我们需要将数据分隔--运算--聚合。对于pandas提供的运算中apply运用的十分广泛,它可以对多列的数据做运算(这个agg不能完成),然后将分隔并已经运算完成的数据合并起来

tips = pd.read_csv('E:/Datawhale数据分析/PythonForDataAnalysis-master/PythonForDataAnalysis-master/ch08/tips.csv')
print(tips.head())
total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4
tips['pre_tip'] = tips['tip'] / tips['total_bill']
print(tips.head())
total_bill   tip     sex smoker  day    time  size   pre_tip
0       16.99  1.01  Female     No  Sun  Dinner     2  0.059447
1       10.34  1.66    Male     No  Sun  Dinner     3  0.160542
2       21.01  3.50    Male     No  Sun  Dinner     3  0.166587
3       23.68  3.31    Male     No  Sun  Dinner     2  0.139780
4       24.59  3.61  Female     No  Sun  Dinner     4  0.146808

去pre_tip为参考系,取前五名

grouped  = tips.groupby(['smoker','sex'])
def pre_sort (frame,n=5,column = 'pre_tip'):return tips.sort_values(by=column)[-n:]
print(grouped.apply(pre_sort))
total_bill   tip     sex smoker  day    time  size
smoker sex
No     Female 183       23.17  6.50    Male    Yes  Sun  Dinner     4   232       11.61  3.39    Male     No  Sat  Dinner     2   67         3.07  1.00  Female    Yes  Sat  Dinner     1   178        9.60  4.00  Female    Yes  Sun  Dinner     2   172        7.25  5.15    Male    Yes  Sun  Dinner     2   Male   183       23.17  6.50    Male    Yes  Sun  Dinner     4   232       11.61  3.39    Male     No  Sat  Dinner     2   67         3.07  1.00  Female    Yes  Sat  Dinner     1   178        9.60  4.00  Female    Yes  Sun  Dinner     2   172        7.25  5.15    Male    Yes  Sun  Dinner     2
Yes    Female 183       23.17  6.50    Male    Yes  Sun  Dinner     4   232       11.61  3.39    Male     No  Sat  Dinner     2   67         3.07  1.00  Female    Yes  Sat  Dinner     1   178        9.60  4.00  Female    Yes  Sun  Dinner     2   172        7.25  5.15    Male    Yes  Sun  Dinner     2   Male   183       23.17  6.50    Male    Yes  Sun  Dinner     4   232       11.61  3.39    Male     No  Sat  Dinner     2   67         3.07  1.00  Female    Yes  Sat  Dinner     1   178        9.60  4.00  Female    Yes  Sun  Dinner     2   172        7.25  5.15    Male    Yes  Sun  Dinner     2pre_tip
smoker sex
No     Female 183  0.280535  232  0.291990  67   0.325733  178  0.416667  172  0.710345  Male   183  0.280535  232  0.291990  67   0.325733  178  0.416667  172  0.710345
Yes    Female 183  0.280535  232  0.291990  67   0.325733  178  0.416667  172  0.710345  Male   183  0.280535  232  0.291990  67   0.325733  178  0.416667  172  0.710345

如果你的函数的需要传参,你用apply()时,把所需的参数传入的后边就好了

print(grouped.apply(pre_sort,n=4,column='tip'))
total_bill    tip   sex smoker  day    time  size   pre_tip
smoker sex
No     Female 59        48.27   6.73  Male     No  Sat  Dinner     4  0.13942423        39.42   7.58  Male     No  Sat  Dinner     4  0.192288212       48.33   9.00  Male     No  Sat  Dinner     4  0.186220170       50.81  10.00  Male    Yes  Sat  Dinner     3  0.196812Male   59        48.27   6.73  Male     No  Sat  Dinner     4  0.13942423        39.42   7.58  Male     No  Sat  Dinner     4  0.192288212       48.33   9.00  Male     No  Sat  Dinner     4  0.186220170       50.81  10.00  Male    Yes  Sat  Dinner     3  0.196812
Yes    Female 59        48.27   6.73  Male     No  Sat  Dinner     4  0.13942423        39.42   7.58  Male     No  Sat  Dinner     4  0.192288212       48.33   9.00  Male     No  Sat  Dinner     4  0.186220170       50.81  10.00  Male    Yes  Sat  Dinner     3  0.196812Male   59        48.27   6.73  Male     No  Sat  Dinner     4  0.13942423        39.42   7.58  Male     No  Sat  Dinner     4  0.192288212       48.33   9.00  Male     No  Sat  Dinner     4  0.186220170       50.81  10.00  Male    Yes  Sat  Dinner     3  0.196812

pandas合并groupby_Pandas中级技巧-数据的灵活运算相关推荐

  1. pandas合并groupby_pandas数据聚合与分组运算——groupby方法

    简介 pandas中一类非常重要的操作是数据聚合与分组运算.通过groupby方法能够实现对数据集的拆分.统计.转换等操作,这个过程一气呵成. 在本文中,你将学到: 选取特定列分组: 对分组进行迭代: ...

  2. pandas合并groupby_pandas实践之GroupBy()

    官网地址:https://pandas.pydata.org/docs/reference/groupby.html pandas中对数据进行分组操作的方法,官方有很详细的教程.下面的案例是真实遇到的 ...

  3. pandas 合并数据

    pandas合并数据使用append.比如我要合并一个文件夹里面所有的pic类型的数据,那么先使用os模块,把所有文件名列出, 然后依次读入成dataframe, 读入过程中,一次append, 如果 ...

  4. pandas python csv_python:pandas合并csv文件的方法(图书数据集成)

    数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformatio ...

  5. pandas数据合并与重塑_PANDAS 数据合并与重塑(concat篇)

    pandas作者Wes McKinney 在[PYTHON FOR DATA ANALYSIS]中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰 ...

  6. pandas基础操作大全之数据合并

    在pandas 基础操作大全之数据读取&清洗&分析中介绍了pandas常见的数据处理操作,现在继续对pandas常用的数据合并操作做下介绍,便于大家快速了解,也方便后续需要时快速查询. ...

  7. pandas 分层取5个数据_5个Pandas的高级功能

    Pandas是数据分析的黄金标准库. 拥有加载,过滤,操作和浏览数据的功能,因此毫无疑问它是数据科学家的最爱. 我们大多数人自然会坚持Pandas的基本知识. 从CSV文件加载数据,过滤几列,然后直接 ...

  8. 【Python基础】入门Pandas不可不知的技巧

    来源:Python数据之道 作者:Peter 整理:阳哥 如果你用 Python 做数据分析,必然会绕不过 Pandas 的使用,实际上, Python 也是由于 numpy.pandas 等数据科学 ...

  9. 入门Pandas不可不知的技巧

    来源:Python数据之道 作者:Peter  整理:阳哥 今天来跟大家分享 Pandas 的一些常用知识点,文章内容由公众号读者 Peter 创作. 如果你用 Python 做数据分析,必然会绕不过 ...

最新文章

  1. 音频编辑大师 3.3 注冊名 注冊码
  2. 使用 Matplotlib 这么久,竟不知道数据可以动起来
  3. 首届数字中国建设峰会之“数字经济 · 闽江夜话”
  4. 利用人工智能保护生物多样性
  5. 《人工智能标准化白皮书(2018版)》发布|附下载
  6. File System Filter Driver Tutorial
  7. Java并发编程—ScheduledThreadPoolExecutor原理分析
  8. Currency determination callback
  9. 借助Web技术,桌面用户界面将保持活跃
  10. BZOJ 4143: [AMPPZ2014]The Lawyer( sort )
  11. SVN下载安装及使用教程
  12. RNA-Seq丰度计算方法
  13. python发送短信接口_Python发短信接口
  14. python k线斜率计算公式_通达信公式K线斜率+选股指标源码
  15. 网站地图是什么,怎么制作和查看网站的地图呢?
  16. 删除K个数字,使剩下的数字串最大(最大数字)
  17. Android代码混淆工具Proguard学习
  18. [BZOJ2121]-字符串游戏-字符串dp
  19. fputc函数重写实现printf重定向
  20. DB2利用db2advis进行查询优化

热门文章

  1. Python 炫技操作:条件语句的七种写法
  2. 一文详解 Java 的几把 JVM 级锁
  3. 漫画:什么是字符串匹配算法?
  4. 我的第一个全栈 Web 应用程序
  5. 9 大技巧拯救你的编程面试!
  6. 5G 重新定义生老病死!
  7. 六维图见过么?Python 画出来了!
  8. 阿里全盘调整组织架构意味着什么?| 畅言
  9. DNS 教父怒喷 DNS-over-HTTPS!
  10. 腾讯云再登 KVM 开源贡献榜,Linux 虚拟化技术将走向何方?