1. pandas简介
pandas是一个用于数据处理和分析的Python库,它基于NumPy库,提供了灵活高效的数据结构和数据分析工具。pandas提供了两种重要的数据结构:Series和DataFrame。Series是一种一维的数据结构,可以存储任何类型的数据。DataFrame是一个二维表格型的数据结构,它有行和列,类似于Excel表格,可以储存不同类型的数据。
在进行数据分析时,pandas的数据处理功能可以帮助我们快速处理数据,进行数据清洗、数据修整、数据聚合、数据变换等操作。
2. pandas骚操作
2.1 一键绘制数据分布图-hist()
使用hist()函数能够很方便的一键绘制数据分布图。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
s = pd.Series(np.random.randint(0,7,size=10))
s.hist()
plt.show()
该操作可以帮助我们更直观的观察数据的分布情况,为数据的分析提供便利。
2.2 复杂类型的数据列自动展开-explode()
在读取数据的过程中,有时会遇到某些列中数据类型为list等复杂数据类型,我们需要展开这个列表,一种很快捷的方法就是使用explode()函数。
import pandas as pd
df = pd.DataFrame({'id':[1,2],'tags':[['a','b'],['a','c']]})
df = df.explode('tags')
print(df)
该操作可以帮助我们将复杂数据类型的内容展开,使其更便于数据的处理和分析。
2.3 交替行选取样本-sample()
在进行数据分析时,我们可能需要随机选择部分样本来进行分析。shuffle()可以随机打乱DataFrame的行,sample()函数则可以帮助我们交替行选取样本,这里为大家提供了一个例子。
import pandas as pd
df = pd.DataFrame([1,2,3,4,5,6,7,8,9], columns=['num'])
print(df.sample(frac=0.5))
该操作可以帮助我们更快速和高效的获取随机数据集合,从而更好的进行数据处理。
2.4 数组的等间距切分-qcut()
在进行分析时,我们希望将某一区间数据切分为等间距的区间,这时候就可以使用qcut()函数。
import pandas as pd
import numpy as np
arr = np.random.randn(20)
data_cut = pd.qcut(arr, 4)
print(data_cut)
该操作可以帮助我们直接进行区间切分,便于后续数据处理和分析。
2.5 数据的多表连接-merge()
pandas提供了多种方法进行数据的连接和合并,其中merge()重要功能可用于多个数据集之间的连接。
import pandas as pd
left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': range(4)})
right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': range(4,8)})
pd.merge(left, right, on='key')
该操作可以帮助我们快速合并多个数据集。
2.6 数据的分组统计-groupby()
在进行数据分析时,数据的分组统计往往是必不可少的,groupby()则是一个很好的统计函数,它可以帮助我们实现某些操作对分组后的数据进行。
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)})
df.groupby('A').sum()
该操作可以帮助我们方便的进行数据分组,从而更好的实现数据的分析和处理。
2.7 数据的透视表处理-pivot_table()
pandas的pivot_table()函数可以帮助我们从DataFrame中快速生成透视表,透视表往往在数据分析中非常实用。
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)})
pd.pivot_table(df, values='C', index=['A'], columns=['B'])
该操作可以帮助我们更直观的进行数据分析,同时也提高了数据分析的效率。
2.8 数据的合并去重-concat()、drop_duplicates()
在进行数据处理的过程中,我们可能需要将多个数据集合并,并去除其中重复的数据,pandas提供了concat()、drop_duplicates()函数来实现这些操作。
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': range(4)})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': range(4,8)})
df = pd.concat([df1, df2])
df = df.drop_duplicates()
该操作可以帮助我们更好地统一多个数据集,去除其中的重复数据,为后续的数据处理和分析提供便利。