Python 数据分析三剑客之 Pandas(四):函数应用、映射、排序和层级索引

CSDN 课程推荐:《迈向数据科学家:带你玩转Python数据分析》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实战》、《跟老齐学Python:数据分析》和《Python大学实用教程》畅销图书。


Pandas 系列文章:

  • Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象
  • Python 数据分析三剑客之 Pandas(二):Index 索引对象以及各种索引操作
  • Python 数据分析三剑客之 Pandas(三):算术运算与缺失值的处理
  • Python 数据分析三剑客之 Pandas(四):函数应用、映射、排序和层级索引
  • Python 数据分析三剑客之 Pandas(五):统计计算与统计描述
  • Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并
  • Python 数据分析三剑客之 Pandas(七):合并数据集
  • Python 数据分析三剑客之 Pandas(八):数据重塑、重复数据处理与数据替换
  • Python 数据分析三剑客之 Pandas(九):时间序列
  • Python 数据分析三剑客之 Pandas(十):数据读写

另有 NumPy、Matplotlib 系列文章已更新完毕,欢迎关注:

  • NumPy 系列文章:https://itrhx.blog.csdn.net/category_9780393.html
  • Matplotlib 系列文章:https://itrhx.blog.csdn.net/category_9780418.html

推荐学习资料与网站(博主参与部分文档翻译):

  • NumPy 官方中文网:https://www.numpy.org.cn/
  • Pandas 官方中文网:https://www.pypandas.cn/
  • Matplotlib 官方中文网:https://www.matplotlib.org.cn/
  • NumPy、Matplotlib、Pandas 速查表:https://github.com/TRHX/Python-quick-reference-table

文章目录

    • 【01x00】函数应用和映射
    • 【02x00】排序
      • 【02x01】sort_index() 索引排序
      • 【02x02】sort_values() 按值排序
      • 【02x03】rank() 返回排序后元素索引
    • 【03x00】层级索引
      • 【03x01】认识层级索引
      • 【03x02】MultiIndex 索引对象
      • 【03x03】提取值
      • 【03x04】交换分层与排序


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106758103
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【01x00】函数应用和映射

Pandas 可直接使用 NumPy 的 ufunc(元素级数组方法) 函数:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.DataFrame(np.random.randn(5,4) - 1)
>>> obj0         1         2         3
0 -0.228107  1.377709 -1.096528 -2.051001
1 -2.477144 -0.500013 -0.040695 -0.267452
2 -0.485999 -1.232930 -0.390701 -1.947984
3 -0.839161 -0.702802 -1.756359 -1.873149
4  0.853121 -1.540105  0.621614 -0.583360
>>> 
>>> np.abs(obj)0         1         2         3
0  0.228107  1.377709  1.096528  2.051001
1  2.477144  0.500013  0.040695  0.267452
2  0.485999  1.232930  0.390701  1.947984
3  0.839161  0.702802  1.756359  1.873149
4  0.853121  1.540105  0.621614  0.583360

函数映射:在 Pandas 中 apply 方法可以将函数应用到列或行上,可以通过设置 axis 参数来指定行或列,默认 axis = 0,即按列映射:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.DataFrame(np.random.randn(5,4) - 1)
>>> obj0         1         2         3
0 -0.707028 -0.755552 -2.196480 -0.529676
1 -0.772668  0.127485 -2.015699 -0.283654
2  0.248200 -1.940189 -1.068028 -1.751737
3 -0.872904 -0.465371 -1.327951 -2.883160
4 -0.092664  0.258351 -1.010747 -2.313039
>>> 
>>> obj.apply(lambda x : x.max())
0    0.248200
1    0.258351
2   -1.010747
3   -0.283654
dtype: float64
>>>
>>> obj.apply(lambda x : x.max(), axis=1)
0   -0.529676
1    0.127485
2    0.248200
3   -0.465371
4    0.258351
dtype: float64

另外还可以通过 applymap 将函数映射到每个数据上:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.DataFrame(np.random.randn(5,4) - 1)
>>> obj0         1         2         3
0 -0.772463 -1.597008 -3.196100 -1.948486
1 -1.765108 -1.646421 -0.687175 -0.401782
2  0.275699 -3.115184 -1.429063 -1.075610
3 -0.251734 -0.448399 -3.077677 -0.294674
4 -1.495896 -1.689729 -0.560376 -1.808794
>>> 
>>> obj.applymap(lambda x : '%.2f' % x)0      1      2      3
0  -0.77  -1.60  -3.20  -1.95
1  -1.77  -1.65  -0.69  -0.40
2   0.28  -3.12  -1.43  -1.08
3  -0.25  -0.45  -3.08  -0.29
4  -1.50  -1.69  -0.56  -1.81

【02x00】排序

【02x01】sort_index() 索引排序

根据条件对数据集排序(sorting)也是一种重要的内置运算。要对行或列索引进行排序(按字典顺序),可使用 sort_index 方法,它将返回一个已排序的新对象。

在 Series 和 DataFrame 中的基本语法如下:

Series.sort_index(self,axis=0,level=None,ascending=True,inplace=False,kind='quicksort',na_position='last',sort_remaining=True,ignore_index: bool = False)
DataFrame.sort_index(self,axis=0,level=None,ascending=True,inplace=False,kind='quicksort',na_position='last',sort_remaining=True,ignore_index: bool = False)

官方文档:

  • https://pandas.pydata.org/docs/reference/api/pandas.Series.sort_index.html
  • https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_index.html

常用参数描述如下:

参数描述
axis指定轴排序,0 or ‘index’1 or ‘columns’,只有在 DataFrame 中才有 1 or 'columns’
ascendingTrue时升序排序(默认),为 False时降序排序
kind排序方法,quicksort:快速排序(默认);'mergesort’:归并排序;'heapsort':堆排序;具体可参见 numpy.sort()

在 Series 中的应用(按照索引 index 排序):

>>> import pandas as pd
>>> obj = pd.Series(range(4), index=['d', 'a', 'b', 'c'])
>>> obj
d    0
a    1
b    2
c    3
dtype: int64
>>> 
>>> obj.sort_index()
a    1
b    2
c    3
d    0
dtype: int64

在 DataFrame 中的应用(可按照索引 index 或列标签 columns 排序):

>>> import pandas as pd
>>> obj = pd.DataFrame(np.arange(8).reshape((2, 4)), index=['three', 'one'], columns=['d', 'a', 'b', 'c'])
>>> objd  a  b  c
three  0  1  2  3
one    4  5  6  7
>>> 
>>> obj.sort_index()d  a  b  c
one    4  5  6  7
three  0  1  2  3
>>> 
>>> obj.sort_index(axis=1)a  b  c  d
three  1  2  3  0
one    5  6  7  4
>>> 
>>> obj.sort_index(axis=1, ascending=False)d  c  b  a
three  0  3  2  1
one    4  7  6  5

【02x02】sort_values() 按值排序

在 Series 和 DataFrame 中的基本语法如下:

Series.sort_values(self,axis=0,ascending=True,inplace=False,kind='quicksort',na_position='last',ignore_index=False)
DataFrame.sort_values(self,by,axis=0,ascending=True,inplace=False,kind='quicksort',na_position='last',ignore_index=False)

官方文档:

  • https://pandas.pydata.org/docs/reference/api/pandas.Series.sort_values.html

  • https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html

常用参数描述如下:

参数描述
byDataFrame 中的必须参数,指定列的值进行排序,Series 中没有此参数
axis指定轴排序,0 or ‘index’1 or ‘columns’,只有在 DataFrame 中才有 1 or 'columns’
ascendingTrue时升序排序(默认),为 False时降序排序
kind排序方法,quicksort:快速排序(默认);'mergesort’:归并排序;'heapsort':堆排序;具体可参见 numpy.sort()

在 Series 中的应用,按照值排序,如果有缺失值,默认都会被放到 Series 的末尾:

>>> import pandas as pd
>>> obj = pd.Series([4, 7, -3, 2])
>>> obj
0    4
1    7
2   -3
3    2
dtype: int64
>>> 
>>> obj.sort_values()
2   -3
3    2
0    4
1    7
dtype: int64
>>> 
>>> obj = pd.Series([4, np.nan, 7, np.nan, -3, 2])
>>> obj
0    4.0
1    NaN
2    7.0
3    NaN
4   -3.0
5    2.0
dtype: float64
>>> 
>>> obj.sort_values()
4   -3.0
5    2.0
0    4.0
2    7.0
1    NaN
3    NaN
dtype: float64

在 DataFrame 中的应用,有时候可能希望根据一个或多个列中的值进行排序。将一个或多个列的名字传递给 sort_values()by 参数即可达到该目的,当传递多个列时,首先会对第一列进行排序,若第一列有相同的值,再根据第二列进行排序,依次类推:

>>> import pandas as pd
>>> obj = pd.DataFrame({'a': [4, 4, -3, 2], 'b': [0, 1, 0, 1], 'c': [6, 4, 1, 3]})
>>> obja  b  c
0  4  0  6
1  4  1  4
2 -3  0  1
3  2  1  3
>>> 
>>> obj.sort_values(by='c')a  b  c
2 -3  0  1
3  2  1  3
1  4  1  4
0  4  0  6
>>> 
>>> obj.sort_values(by='c', ascending=False)a  b  c
0  4  0  6
1  4  1  4
3  2  1  3
2 -3  0  1
>>>
>>> obj.sort_values(by=['a', 'b'])a  b  c
2 -3  0  1
3  2  1  3
0  4  0  6
1  4  1  4
>>> import pandas as pd
>>> obj = pd.DataFrame({'a': [4, 4, -3, 2], 'b': [0, 1, 0, 1], 'c': [6, 4, 1, 3]}, index=['A', 'B', 'C', 'D'])
>>> obja  b  c
A  4  0  6
B  4  1  4
C -3  0  1
D  2  1  3
>>> 
>>> obj.sort_values(by='B', axis=1)b  a  c
A  0  4  6
B  1  4  4
C  0 -3  1
D  1  2  3

【02x03】rank() 返回排序后元素索引

rank() 函数会返回一个对象,对象的值是原对象经过排序后的索引值,即下标。

在 Series 和 DataFrame 中的基本语法如下:

Series.rank(self: ~ FrameOrSeries,axis=0,method: str = 'average',numeric_only: Union[bool, NoneType] = None,na_option: str = 'keep',ascending: bool = True,pct: bool = False)
DataFrame.rank(self: ~ FrameOrSeries,axis=0,method: str = 'average',numeric_only: Union[bool, NoneType] = None,na_option: str = 'keep',ascending: bool = True,pct: bool = False)

官方文档:

  • https://pandas.pydata.org/docs/reference/api/pandas.Series.rank.html

  • https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rank.html

常用参数描述如下:

参数描述
axis指定轴排序,0 or ‘index’1 or ‘columns’,只有在 DataFrame 中才有 1 or 'columns’
method有相同值时,如何处理:
‘average’:默认值,去两个相同索引的平均值;‘min’:取两个相同索引的最小值;
‘max’:取两个相同索引的最大值;‘first’:按照出现的先后顺序;
‘dense’:和 'min' 差不多,但是各组之间总是+1的,不太好解释,可以看后面的示例
ascendingTrue时升序排序(默认),为 False时降序排序

在 Series 中的应用,按照值排序,如果有缺失值,默认都会被放到 Series 的末尾:

>>> import pandas as pd
>>> obj = pd.Series([7, -5, 7, 4, 2, 0, 4])
>>> obj
0    7
1   -5
2    7
3    4
4    2
5    0
6    4
dtype: int64
>>> 
>>> obj.rank()
0    6.5  # 第 0 个和第 2 个值从小到大排名分别为 6 和 7,默认取平均值,即 6.5
1    1.0
2    6.5
3    4.5  # 第 3 个和第 6 个值从小到大排名分别为 4 和 5,默认取平均值,即 4.5
4    3.0
5    2.0
6    4.5
dtype: float64
>>> 
>>> obj.rank(method='first')
0    6.0  # 第 0 个和第 2 个值从小到大排名分别为 6 和 7,按照第一次出现排序,分别为 6 和 7
1    1.0
2    7.0
3    4.0  # 第 3 个和第 6 个值从小到大排名分别为 4 和 5,按照第一次出现排序,分别为 4 和 5
4    3.0
5    2.0
6    5.0
dtype: float64
>>> 
>>> obj.rank(method='dense')
0    5.0  # 第 0 个和第 2 个值从小到大排名分别为 6 和 7,按照最小值排序,但 dense 规定间隔为 1 所以为 5
1    1.0
2    5.0
3    4.0  # 第 3 个和第 6 个值从小到大排名分别为 4 和 5,按照最小值排序,即 4
4    3.0
5    2.0
6    4.0
dtype: float64
>>> 
>>> obj.rank(method='min')
0    6.0  # 第 0 个和第 2 个值从小到大排名分别为 6 和 7,按照最小值排序,即 6
1    1.0
2    6.0
3    4.0  # 第 3 个和第 6 个值从小到大排名分别为 4 和 5,按照最小值排序,即 4
4    3.0
5    2.0
6    4.0
dtype: float64

在 DataFrame 中可以使用 axis 参数来指定轴:

>>> import pandas as pd
>>> obj = pd.DataFrame({'b': [4.3, 7, -3, 2], 'a': [0, 1, 0, 1], 'c': [-2, 5, 8, -2.5]})
>>> objb  a    c
0  4.3  0 -2.0
1  7.0  1  5.0
2 -3.0  0  8.0
3  2.0  1 -2.5
>>> 
>>> obj.rank()b    a    c
0  3.0  1.5  2.0
1  4.0  3.5  3.0
2  1.0  1.5  4.0
3  2.0  3.5  1.0
>>> 
>>> obj.rank(axis='columns')b    a    c
0  3.0  2.0  1.0
1  3.0  1.0  2.0
2  1.0  2.0  3.0
3  3.0  2.0  1.0

这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106758103
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【03x00】层级索引

【03x01】认识层级索引

以下示例将创建一个 Series 对象, 索引 Index 由两个子 list 组成,第一个子 list 是外层索引,第二个 list 是内层索引:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.Series(np.random.randn(12),index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])
>>> obj
a  0   -0.2015361   -0.6290582    0.766716
b  0   -1.2558311   -0.4837272   -0.018653
c  0    0.7887871    1.0100972   -0.187258
d  0    1.2423631   -0.8220112   -0.085682
dtype: float64

【03x02】MultiIndex 索引对象

官方文档:https://pandas.pydata.org/docs/reference/api/pandas.MultiIndex.html

尝试打印上面示例中 Series 的索引类型,会得到一个 MultiIndex 对象,MultiIndex 对象的 levels 属性表示两个层级中分别有那些标签,codes 属性表示每个位置分别是什么标签,如下所示:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.Series(np.random.randn(12),index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])
>>> obj
a  0    0.0359461   -0.8672152   -0.053355
b  0   -0.9866161    0.0260712   -0.048394
c  0    0.2512741    0.2177902    1.137674
d  0   -1.2451781    1.2349722   -0.035624
dtype: float64
>>> 
>>> type(obj.index)
<class 'pandas.core.indexes.multi.MultiIndex'>
>>> 
>>> obj.index
MultiIndex([('a', 0),('a', 1),('a', 2),('b', 0),('b', 1),('b', 2),('c', 0),('c', 1),('c', 2),('d', 0),('d', 1),('d', 2)],)
>>> obj.index.levels
FrozenList([['a', 'b', 'c', 'd'], [0, 1, 2]])
>>>
>>> obj.index.codes
FrozenList([[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])

通常可以使用 from_arrays() 方法来将数组对象转换为 MultiIndex 索引对象:

>>> arrays = [[1, 1, 2, 2], ['red', 'blue', 'red', 'blue']]
>>> pd.MultiIndex.from_arrays(arrays, names=('number', 'color'))
MultiIndex([(1,  'red'),(1, 'blue'),(2,  'red'),(2, 'blue')],names=['number', 'color'])

其他常用方法见下表(更多方法参见官方文档):

方法描述
from_arrays(arrays[, sortorder, names])将数组转换为 MultiIndex
from_tuples(tuples[, sortorder, names])将元组列表转换为 MultiIndex
from_product(iterables[, sortorder, names])将多个可迭代的笛卡尔积转换成 MultiIndex
from_frame(df[, sortorder, names])将 DataFrame 对象转换为 MultiIndex
set_levels(self, levels[, level, inplace, …])为 MultiIndex 设置新的 levels
set_codes(self, codes[, level, inplace, …])为 MultiIndex 设置新的 codes
sortlevel(self[, level, ascending, …])根据 level 进行排序
droplevel(self[, level])删除指定的 level
swaplevel(self[, i, j])交换 level i 与 level i,即交换外层索引与内层索引

【03x03】提取值

对于这种有多层索引的对象,如果只传入一个参数,则会对外层索引进行提取,其中包含对应所有的内层索引,如果传入两个参数,则第一个参数表示外层索引,第二个参数表示内层索引,示例如下:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.Series(np.random.randn(12),index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])
>>> obj
a  0    0.5502021    0.3287842    1.422690
b  0   -1.3334771   -0.9338092   -0.326541
c  0    0.6636861    0.9433932    0.273106
d  0    1.3540371   -2.3128472   -2.343777
dtype: float64
>>> 
>>> obj['b']
0   -1.333477
1   -0.933809
2   -0.326541
dtype: float64
>>>
>>> obj['b', 1]
-0.9338094811708413
>>> 
>>> obj[:, 2]
a    1.422690
b   -0.326541
c    0.273106
d   -2.343777
dtype: float64

【03x04】交换分层与排序

MultiIndex 对象的 swaplevel() 方法可以交换外层与内层索引,sortlevel() 方法会先对外层索引进行排序,再对内层索引进行排序,默认是升序,如果设置 ascending 参数为 False 则会降序排列,示例如下:

>>> import pandas as pd
>>> import numpy as np
>>> obj = pd.Series(np.random.randn(12),index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])
>>> obj
a  0   -0.1102151    0.1930752   -1.101706
b  0   -1.3257431    0.5284182   -0.127081
c  0   -0.7338221    1.6652622    0.127073
d  0    1.2620221   -1.1705182    0.966334
dtype: float64
>>> 
>>> obj.swaplevel()
0  a   -0.110215
1  a    0.193075
2  a   -1.101706
0  b   -1.325743
1  b    0.528418
2  b   -0.127081
0  c   -0.733822
1  c    1.665262
2  c    0.127073
0  d    1.262022
1  d   -1.170518
2  d    0.966334
dtype: float64
>>> 
>>> obj.swaplevel().index.sortlevel()
(MultiIndex([(0, 'a'),(0, 'b'),(0, 'c'),(0, 'd'),(1, 'a'),(1, 'b'),(1, 'c'),(1, 'd'),(2, 'a'),(2, 'b'),(2, 'c'),(2, 'd')],), array([ 0,  3,  6,  9,  1,  4,  7, 10,  2,  5,  8, 11], dtype=int32))

这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106758103
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】wpf和winform的区别

WinForm是Net开发平台中对Windows Form的一种称谓。 WPF&#xff08;Windows Presentation Foundation&#xff09;是微软推出的基于Windows 的用户界面框架&#xff0c;属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架&#xff0c;真正做到了分离界面设计…

sqoop(数据迁移工具)-安装-学习

sqoop 1&#xff09;概述 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。 导入数据&#xff1a;MySQL&#xff0c;Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统&#xff1b; 导出数据&#xff1a;从Hadoop的文件系统中导出数据到关系数…

Python 数据分析三剑客之 Pandas(五):统计计算与统计描述

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

【转】UWP 和 WPF 对比

本文告诉大家 UWP 和 WPF 的不同。 如果在遇到技术选择或者想和小伙伴吹的时候可以让他以为自己很厉害&#xff0c;那么请继续看。 如果在看这文章还不知道什么是 UWP 和 WPF 那么也没关系&#xff0c;下面会告诉大家。 实际上 Universal Windows Platform (UWP) 和 Windows …

Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty

打开bin下的flume-ng 找到下面&#xff0c;添加红色框内容&#xff0c;即可 如果还有有关hbase的同样的错误&#xff08;因为hadoop与hbase版本不兼容&#xff0c;更换我这里hadoop-2.7.7&#xff0c;hbase-2.0.6&#xff08;一开始是2.1.5会出现这个错误&#xff09;&#xff…

centos7安装telnet后/etc/xinetd.d/telnet下没有telnet

centos7的telnet配置文件是&#xff1a;/etc/xinetd.conf。centos7以前的是/etc/xinetd.d/telnet 因为装好telnet服务之后&#xff0c;默认是不开启服务的&#xff0c;下面我们需要修改文件来开启服务 需要把 disable 改成no

Python 数据分析三剑客之 Pandas(七):合并数据集

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

flume学习-含安装

1.Flume是什么&#xff1a;Flume是Cloudera提供的一个高可用的&#xff0c;高可靠的&#xff0c;分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构&#xff0c;灵活简单。 Flume组成架构 下面我们来详细介绍一下Flume架构中的组件。 1&#xff09; Agent&#xff1…

Python 数据分析三剑客之 Pandas(八):数据重塑、重复数据处理与数据替换

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

【转】使用Azure Rest API获得Access Token介绍

1. 前言 本文主要描述了以java应用为客户端&#xff0c;使用Azure Rest接口的认证过程&#xff0c;帮助快速完成使用Azure Rest接口的第一步。 2. 读者 本文适合开发人员、IT运维人员阅读。 3. 方案架构说明 在我负责的某大型国企客户提出的混合云战略是&#xff1a;不仅要…

Flume-ng运行出错: Caused by: java.net.BindException: 地址已在使用org.apache.flume.lifecycle.LifecycleSupervis

Flume下杀死collector再恢复出现错误 2019-08-29 15:57:52,578 (lifecycleSupervisor-1-5) [ERROR - org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:251)] Unable to start EventDrivenSourceRunner: { source:Avro source r…

Python 数据分析三剑客之 Pandas(九):时间序列

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

Flume-ng 高可用搭建-与测试

前提&#xff1a; 1)五台虚拟机&#xff08;三台也可以&#xff09; 2)flume单节点测试并学会 3)hadoop集群搭建完成 Flume NG集群&#xff0c;架构图 Flume的存储可以支持多种&#xff0c;这里只列举了HDFS 角色分配 名称HOST角色Agent1chun1Web ServerAgent2chun2Web Ser…

【转】D365 FO第三方集成(一)---访问认证(应用注册)

从Axapta3.0的COM Business Connector&#xff0c;到AX4.0和AX2009的 .NET Business Connector&#xff0c;到AX2012的WCF Services&#xff0c;最后到D365FO的接口方式。 AX的接口演化&#xff0c;几乎见证了微软整个技术栈的变迁。 D365 FO的Web Services比起AX2012有了飞跃&…

【转】Postman系列一:Postman安装及使用过程中遇到的问题

一&#xff1a;Postman的简介、下载安装及界面说明 1.Postman的简单介绍 Postman是一款强大的网页调试和发送网页HTTP请求的工具&#xff0c;Postman让开发和测试人员做API&#xff08;接口&#xff09;测试变得更加简单。在我使用Postman之前还有一个版本&#xff0c;就是需要…

Hive报错:Exception in thread main java.lang.Incom。。。。 Class com.google.common.collect.ImmutableSotil

Exception in thread “main” java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSotil.NavigableMap Exception in thread "main" java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSotil.Na…

Python 数据分析三剑客之 Pandas(十):数据读写

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

Hive优化

一、 Fetch抓取 Fetch抓取是指&#xff0c;Hive中对某些情况的查询可以不必使用MapReduce计算。 例如&#xff1a;SELECT * FROM employees;在这种情况下&#xff0c;Hive可以简单地读取employee对应的存储目录下的文件&#xff0c;然后输出查询结果到控制台。 在hive-default…

COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图)

文章目录【1x00】前言【2x00】思维导图【3x00】数据结构分析【4x00】主函数 main()【5x00】数据获取模块 data_get【5x01】初始化函数 init()【5x02】中国总数据 china_total_data()【5x03】全球总数据 global_total_data()【5x04】中国每日数据 china_daily_data()【5x05】境外…