2022Python最全Pandas库相关知识

Pandas库相关知识

一、概述

引用菜鸟教程上的一段话:
Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。
Pandas 名字衍生自术语 “panel data”(面板数据)和 “Python data analysis”(Python 数据分析)。
Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。
Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。
Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。

二、具体使用

1、基础使用

1.1 定义一个序列

s = pd.Series([1, 3, 6, np.nan, 44, 1])

print('-------------------------定义一个序列---------------------------')
print(s)

结果
在这里插入图片描述

1.2 定义一个普通的二维序列

s2 = pd.DataFrame(np.arange(12).reshape((3, 4)))

print('-------------------------定义一个普通的二维序列---------------------')
print(s2)

结果
在这里插入图片描述

1.3 定义一个时间序列

dates = pd.date_range('20221010', periods=6)

print('-------------------------定义一个时间序列-------------------------')
print(dates)

结果
在这里插入图片描述

1.4 自定义一个二维序列

df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd'])

print('-------------------------自定义一个二维序列------------------------')
print(df)

结果
在这里插入图片描述

1.5 重新定义一个序列

df2 = pd.DataFrame({
    'A': 1.,
    'B': pd.Timestamp('20130102'),
    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
    'D': np.array([3] * 4, dtype='int32'),
    'E': pd.Categorical(["test", "train", "test", "train"]),
    'F': 'foo'
})

结果
在这里插入图片描述

(1)通过上述序列,获取列的值
print('-------------------------获取列的名字---------------------------')
print(df2.columns)

结果
在这里插入图片描述

(2)通过上述序列,获取每一行的值
print('-------------------------获取每一行的值---------------------------')
print(df2.values)

结果
在这里插入图片描述

(3)描述数据
print('-------------------------描述数据---------------------------')
print(df2.describe())

结果
在这里插入图片描述

(4)反转矩阵
print('-------------------------反转矩阵---------------------------')
print(df2.T)

结果
在这里插入图片描述

(5)从左到右倒序排列
print('-------------------------从左到右倒序排列---------------------------')
print(df2.sort_index(axis=1, ascending=False))

结果
在这里插入图片描述

(6)从上到下倒序排列
print('-------------------------从上到下倒序排列---------------------------')
print(df2.sort_index(axis=0, ascending=False))

结果
在这里插入图片描述

(7)根据某一列的值进行排序
print('-------------------------根据某一列的值进行排列---------------------------')
print(df2.sort_values(by='E'))

结果
在这里插入图片描述

1.6 完整代码

import pandas as pd
import numpy as np

s = pd.Series([1, 3, 6, np.nan, 44, 1])

s2 = pd.DataFrame(np.arange(12).reshape((3, 4)))

dates = pd.date_range('20221010', periods=6)

df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd'])

df2 = pd.DataFrame({
    'A': 1.,
    'B': pd.Timestamp('20130102'),
    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
    'D': np.array([3] * 4, dtype='int32'),
    'E': pd.Categorical(["test", "train", "test", "train"]),
    'F': 'foo'
})

if __name__ == '__main__':
    print('-------------------------定义一个序列---------------------------')
    print(s)

    print('-------------------------定义一个普通的二维序列---------------------')
    print(s2)

    print('-------------------------定义一个时间序列-------------------------')
    print(dates)

    print('-------------------------自定义一个二维序列------------------------')
    print(df)

    print('-------------------------定义一个新的序列---------------------------')
    print(df2)

    print('-------------------------获取列的名字---------------------------')
    print(df2.columns)

    print('-------------------------获取每一行的值---------------------------')
    print(df2.values)

    print('-------------------------描述数据---------------------------')
    print(df2.describe())

    print('-------------------------反转矩阵---------------------------')
    print(df2.T)

    print('-------------------------从左到右倒序排列---------------------------')
    print(df2.sort_index(axis=1, ascending=False))

    print('-------------------------从上到下倒序排列---------------------------')
    print(df2.sort_index(axis=0, ascending=False))

    print('-------------------------根据某一列的值进行排列---------------------------')
    print(df2.sort_values(by='E'))

2、pandas选择数据

2.1 定义一个二维序列

dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])

print(df)

结果
在这里插入图片描述

(1)找出某一列的信息
 print('----------------------------找出A这一列的信息---------------------')
 print(df['A'], df.A)

结果
在这里插入图片描述

(2)根据序列号找出某几行的信息
print('----------------------------找出这三行的信息方式1-----------------------')
print(df[0:3])

结果
在这里插入图片描述

(3)根据index值(标签名)找出某几行信息
print('----------------------------找出这三行的信息方式2---------------------')
print(df['20220102':'20220104'])

结果
在这里插入图片描述

(4)对单个标签进行筛选
print('----------------------------对单个标签进行筛选---------------------')
print(df.loc['20220103'])

结果
在这里插入图片描述

(5)通过序列号和标签名混合使用
print('----------------------------混合使用---------------------')
print(df.loc[:, ['A', 'B']])

结果
在这里插入图片描述

(6)选择某一行的数据
print('----------------------------选择某一行的数据---------------------')
print(df.iloc[3])

结果
在这里插入图片描述

(7)选择某一行某一个的数据
print('----------------------------选择某一行某一个的数据---------------------')
print(df.iloc[3,1])

结果
在这里插入图片描述

(8)结合切片操作选择数据
print('----------------------------结合切片操作选择数据---------------------')
print(df.iloc[3:5, 1:3])

结果
在这里插入图片描述

(9)通过判断来删选数据
print('----------------------------通过判断来筛选数据---------------------')
print(df[df.A < 8])

结果
在这里插入图片描述

2.2 完整代码

import pandas as pd
import numpy as np

dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])

if __name__ == '__main__':
    print(df)

    print('----------------------------找出A这一列的信息---------------------')
    print(df['A'], df.A)

    print('----------------------------找出这三行的信息方式1-----------------------')
    print(df[0:3])

    print('----------------------------找出这三行的信息方式2---------------------')
    print(df['20220102':'20220104'])

    print('----------------------------对单个标签进行筛选---------------------')
    print(df.loc['20220103'])

    print('----------------------------混合使用---------------------')
    print(df.loc[:, ['A', 'B']])

    print('----------------------------选择某一行的数据---------------------')
    print(df.iloc[3])

    print('----------------------------选择某一行某一个的数据---------------------')
    print(df.iloc[3, 1])

    print('----------------------------结合切片操作选择数据---------------------')
    print(df.iloc[3:5, 1:3])

    print('----------------------------通过判断来筛选数据---------------------')
    print(df[df.A < 8])

3、pandas设置值

3.1 定义一个二维序列

dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])

print(df)

结果

在这里插入图片描述

(1)通过序列号改变某一位的值
print('--------------------通过序列号改变某一位的值---------------------')
df.iloc[2, 2] = 1111
print(df)

结果
在这里插入图片描述

(2)通过标签改变某一位的值
print('--------------------通过标签改变某一位的值---------------------')
df.loc['20220103', 'B'] = 2222
print(df)

结果
在这里插入图片描述

(3)通过判断条件改变值
print('--------------------通过判断结果改变值---------------------')
df[df.A > 4] = 0
print(df)

结果
在这里插入图片描述

(4)通过判断条件改变某一列的值
print('--------------------通过判断结果改变某一列的值---------------------')
df.A[df.A > 4] = 0
print(df)

结果
在这里插入图片描述

(5)增加某一列
print('--------------------增加某一列---------------------')
df['E'] = np.nan
print(df)

结果
在这里插入图片描述

(6)自定义增加某一列
print('--------------------自定义增加某一列---------------------')
df['F'] = pd.Series([1,2,3,4,5,6],index=pd.date_range('20220101',periods=6))
print(df)

结果
在这里插入图片描述

3.2 完整代码

import pandas as pd
import numpy as np

dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])

if __name__ == '__main__':
    print(df)

    print('--------------------通过序列号改变某一位的值---------------------')
    df.iloc[2, 2] = 1111
    print(df)

    print('--------------------通过标签改变某一位的值---------------------')
    df.loc['20220103', 'B'] = 2222
    print(df)

    # print('--------------------通过判断结果改变值---------------------')
    # df[df.A > 4] = 0
    # print(df)

    print('--------------------通过判断结果改变某一列的值---------------------')
    df.A[df.A > 4] = 0
    print(df)

    print('--------------------增加某一列---------------------')
    df['E'] = np.nan
    print(df)

    print('--------------------自定义增加某一列---------------------')
    df['F'] = pd.Series([1,2,3,4,5,6],index=pd.date_range('20220101',periods=6))
    print(df)

4、pandas处理丢失数据

4.1 定义一个二维序列并将某两个数据赋值为nan

dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[0, 1] = np.nan
df.iloc[1, 2] = np.nan

结果
在这里插入图片描述

(1)将数值为nan的行给删除
print('--------------------将数值为nan的行给删除-----------------------')
print(df.dropna(axis=0, how='any'))

结果
在这里插入图片描述

(2)将值为nan的值填充为0
print('--------------------将数值为nan的值填充为0-----------------------')
print(df.fillna(value=0))

结果
在这里插入图片描述

(3)判断数据是否为null
print('--------------------判断数据是否数值为nan-----------------------')
print(df.isnull())

结果
在这里插入图片描述

(4)判断数据是否存在值为nan的数据
print('--------------------判断数据是否存在值为nan的数据-----------------------')
print(np.any(df.isnull()) == True)

结果
在这里插入图片描述

4.2 完整代码

import pandas as pd
import numpy as np

dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[0, 1] = np.nan
df.iloc[1, 2] = np.nan

if __name__ == '__main__':
    print(df)

    print('--------------------将数值为nan的行给删除-----------------------')
    print(df.dropna(axis=0, how='any'))

    print('--------------------将数值为nan的值填充为0-----------------------')
    print(df.fillna(value=0))

    print('--------------------判断数据是否数值为nan-----------------------')
    print(df.isnull())

    print('--------------------判断数据是否存在值为nan的数据-----------------------')
    print(np.any(df.isnull()) == True)

5、pandas导入导出

5.1 读取csv表

#读取csv表
data = pd.read_csv('doc/test.csv')

结果
在这里插入图片描述

5.2 保存数据

#保存数据为pickle
data.to_pickle('doc/test.pickle')

结果
在这里插入图片描述

5.3 完整代码

import pandas as pd

data = pd.read_csv('doc/test.csv')

if __name__ == '__main__':
    print(data)

    data.to_pickle('doc/test.pickle')

6、pandas合并操作(concat)

6.1 定义三个二维序列

df1 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3, 4)) * 2, columns=['a', 'b', 'c', 'd'])

结果
在这里插入图片描述

(1)concat合并后的效果
print('------------------------------合并后的效果------------------------')
res = pd.concat([df1, df2, df3], axis=0, ignore_index=True)
print(res)

结果
在这里插入图片描述

6.2 定义两个新的二维序列

df4 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])
df5 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['b', 'c', 'd', 'e'], inde

结果
在这里插入图片描述

(1)inner合并
print('-----------------------------inner合并-------------------------')
res = pd.concat([df4, df5], join='inner', ignore_index=True)
print(res)

结果
在这里插入图片描述

(2)从左到右合并
print('-----------------------------从左到右合并,指定合并的方式-------------------------')
res2 = pd.concat([df4, df5], axis=1)
print(res2)

结果
在这里插入图片描述

(3)使用append单个添加,默认从上到下合并
print('-----------------------------使用append,默认从上到下合并-------------------------')
res2 = df1.append(df2, ignore_index=True)
print(res2)

结果
在这里插入图片描述

(4)使用append多个添加,默认从上到下合并
print('-----------------------------使用append多个合并,默认从上到下合并-------------------------')
res2 = df1.append([df2, df3], ignore_index=True)
print(res2)

结果
在这里插入图片描述

(5)使用append添加一行数据
print('-----------------------------使用append,添加一行数据-------------------------')
s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
res2 = df1.append(s1, ignore_index=True)
print(res2)

结果
在这里插入图片描述

6.3 完整代码


import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3, 4)) * 2, columns=['a', 'b', 'c', 'd'])

df4 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])
df5 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['b', 'c', 'd', 'e'], index=[2, 3, 4])

if __name__ == '__main__':
    print(df1)
    print(df2)
    print(df3)

    print('------------------------------合并后的效果------------------------')
    res = pd.concat([df1, df2, df3], axis=0, ignore_index=True)
    print(res)

    print('------------------------------组合2------------------------')
    print(df4)
    print(df5)

    print('-----------------------------inner合并-------------------------')
    res = pd.concat([df4, df5], join='inner', ignore_index=True)
    print(res)

    print('-----------------------------从左到右合并,指定合并的方式-------------------------')
    res2 = pd.concat([df4, df5], axis=1)
    print(res2)

    print('-----------------------------使用append,默认从上到下合并-------------------------')
    res2 = df1.append(df2, ignore_index=True)
    print(res2)

    print('-----------------------------使用append多个合并,默认从上到下合并-------------------------')
    res2 = df1.append([df2, df3], ignore_index=True)
    print(res2)

    print('-----------------------------使用append,添加一行数据-------------------------')
    s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
    res2 = df1.append(s1, ignore_index=True)
    print(res2)

7、pandas合并二(merge)

7.1 定义两个二维序列(场景1)

left = pd.DataFrame({
    'key': ['k0', 'k1', 'k2', 'k3'],
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
})

right = pd.DataFrame({
    'key': ['k0', 'k1', 'k2', 'k3'],
    'C': ['C0', 'C1', 'C2', 'C3'],
    'D': ['D0', 'D1', 'D2', 'D3'],
})

结果
在这里插入图片描述

(1)merge合并
print('------------------------------merge合并--------------------------------')
res = pd.merge(left, right, on='key')
print(res)

结果
在这里插入图片描述

7.2 重新定义两个序列(场景2)

left2 = pd.DataFrame({
    'key': ['k0', 'k0', 'k1', 'k2'],
    'key2': ['k0', 'k1', 'k0', 'k1'],
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
})

right2 = pd.DataFrame({
    'key': ['k0', 'k1', 'k1', 'k2'],
    'key2': ['k0', 'k0', 'k0', 'k0'],
    'C': ['C0', 'C1', 'C2', 'C3'],
    'D': ['D0', 'D1', 'D2', 'D3'],
})


结果
在这里插入图片描述

(1)根据多个条件进行merge合并
print('------------------------------根据多个条件,进行merge合并--------------------------------')
res2 = pd.merge(left2, right2, on=['key', 'key2'])
print(res2)

结果
在这里插入图片描述

(2)outer进行merge合并
print('------------------------------outer进行merge合并--------------------------------')
res2 = pd.merge(left2, right2, on=['key', 'key2'], how='outer')
print(res2)

结果
在这里插入图片描述

(3)right进行merge合并
print('------------------------------right进行merge合并--------------------------------')
res2 = pd.merge(left2, right2, on=['key', 'key2'], how='right')
print(res2)

结果
在这里插入图片描述

7.3 再次定义两个二维序列(场景3)

df1 = pd.DataFrame({'col1': [0, 1], 'col_left': ['a', 'b']})
df2 = pd.DataFrame({'col1': [1, 2, 2], 'col_right': [2, 2, 2]})

print(df1)
print(df2)

结果
在这里插入图片描述

(1)进行right合并时,显示合并策略
print('------------------------------显示合并操作--------------------------------')
res3 = pd.merge(df1, df2, on='col1', how='outer', indicator=True)
print(res3)

结果
在这里插入图片描述

(2)修改合并策略的字段名
print('--------------------------------修改合并策略的字段名------------------------------')
res3 = pd.merge(df1, df2, on='col1', how='outer', indicator='indicator_column')
print(res3)

结果
在这里插入图片描述

7.4 之后定义两个二维序列(场景4)

left3 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2'],
},
    index=['k0', 'k1', 'k2']
)

right3 = pd.DataFrame({
    'C': ['C0', 'C1', 'C2'],
    'D': ['D0', 'D1', 'D2'],
},
    index=['k0', 'k2', 'k3']
)

结果
在这里插入图片描述

(1)根据index来进行merge合并
print('--------------------------------index合并------------------------------')
res4 = pd.merge(left3, right3, left_index=True, right_index=True, how='outer')
print(res4)

结果
在这里插入图片描述

7.5 最后定义两个二维序列(场景5)

boys = pd.DataFrame({'k': ['K0', 'K1', 'K2'], 'age': [1, 2, 3]})
girls = pd.DataFrame({'k': ['K0', 'K0', 'K3'], 'age': [4, 5, 6]})

print(boys)
print(girls)

结果是
在这里插入图片描述

(1)merge合并后增加后缀
print('--------------------------------合并后增加后缀------------------------------')
res5 = pd.merge(boys, girls, on='k', suffixes=['_boy', '_girl'], how='outer')
print(res5)

结果
在这里插入图片描述

7.6 完整代码

import pandas as pd

left = pd.DataFrame({
    'key': ['k0', 'k1', 'k2', 'k3'],
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
})

right = pd.DataFrame({
    'key': ['k0', 'k1', 'k2', 'k3'],
    'C': ['C0', 'C1', 'C2', 'C3'],
    'D': ['D0', 'D1', 'D2', 'D3'],
})

left2 = pd.DataFrame({
    'key': ['k0', 'k0', 'k1', 'k2'],
    'key2': ['k0', 'k1', 'k0', 'k1'],
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
})

right2 = pd.DataFrame({
    'key': ['k0', 'k1', 'k1', 'k2'],
    'key2': ['k0', 'k0', 'k0', 'k0'],
    'C': ['C0', 'C1', 'C2', 'C3'],
    'D': ['D0', 'D1', 'D2', 'D3'],
})

df1 = pd.DataFrame({'col1': [0, 1], 'col_left': ['a', 'b']})
df2 = pd.DataFrame({'col1': [1, 2, 2], 'col_right': [2, 2, 2]})

left3 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2'],
},
    index=['k0', 'k1', 'k2']
)

right3 = pd.DataFrame({
    'C': ['C0', 'C1', 'C2'],
    'D': ['D0', 'D1', 'D2'],
},
    index=['k0', 'k2', 'k3']
)

boys = pd.DataFrame({'k': ['K0', 'K1', 'K2'], 'age': [1, 2, 3]})
girls = pd.DataFrame({'k': ['K0', 'K0', 'K3'], 'age': [4, 5, 6]})

if __name__ == '__main__':
    print(left)
    print(right)

    print('------------------------------merge合并--------------------------------')
    res = pd.merge(left, right, on='key')
    print(res)

    print(left2)
    print(right2)

    print('------------------------------根据多个条件,进行merge合并--------------------------------')
    res2 = pd.merge(left2, right2, on=['key', 'key2'])
    print(res2)

    print('------------------------------outer进行merge合并--------------------------------')
    res2 = pd.merge(left2, right2, on=['key', 'key2'], how='outer')
    print(res2)

    print('------------------------------right进行merge合并--------------------------------')
    res2 = pd.merge(left2, right2, on=['key', 'key2'], how='right')
    print(res2)

    print('------------------------------分割线--------------------------------')
    print(df1)
    print(df2)

    print('------------------------------显示合并操作--------------------------------')
    res3 = pd.merge(df1, df2, on='col1', how='outer', indicator=True)
    print(res3)

    print('--------------------------------修改合并策略的字段名------------------------------')
    res3 = pd.merge(df1, df2, on='col1', how='outer', indicator='indicator_column')
    print(res3)

    print('--------------------------------分割线------------------------------')
    print(left3)
    print(right3)

    print('--------------------------------index合并------------------------------')
    res4 = pd.merge(left3, right3, left_index=True, right_index=True, how='outer')
    print(res4)

    print('--------------------------------分割线------------------------------')
    print(boys)
    print(girls)

    print('--------------------------------合并后增加后缀------------------------------')
    res5 = pd.merge(boys, girls, on='k', suffixes=['_boy', '_girl'], how='outer')
    print(res5)

8、pandas画图(plot)

8.1 单个线性图

# Seris
data = pd.Series(np.random.randn(1000), index=np.arange(1000))
data = data.cumsum()
data.plot()
plt.show()

结果
在这里插入图片描述

8.2 多个线性图

# DataFrame
data2 = pd.DataFrame(np.random.randn(1000, 4), index=np.arange(1000), columns=list("ABCD"))
data2 = data2.cumsum()

data2.plot()
plt.show()

结果
在这里插入图片描述

8.3 散点图

ax = data2.plot.scatter(x='A', y='B', color='DarkBlue', label='Class1')
data2.plot.scatter(x='A', y='C', color='DarkGreen', label='Class2', ax=ax)
plt.show()

结果
在这里插入图片描述

8.4 完整代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    # Seris
    data = pd.Series(np.random.randn(1000), index=np.arange(1000))
    data = data.cumsum()

    # DataFrame
    data2 = pd.DataFrame(np.random.randn(1000, 4), index=np.arange(1000), columns=list("ABCD"))
    data2 = data2.cumsum()
    # data2.plot()

    ax = data2.plot.scatter(x='A', y='B', color='DarkBlue', label='Class1')
    data2.plot.scatter(x='A', y='C', color='DarkGreen', label='Class2', ax=ax)
    plt.show()

未完待续

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Pandas是一个用于数据处理和分析的Python,它提供了高级的数据结构和数据操作工具,使得数据的清洗、转换、分析和可视化变得更加简单和高效。Pandas建立在NumPy的基础上,扩展了NumPy的功能,提供了更多高级的数据处理功能和灵活性。\[2\] Pandas的主要数据结构是Series和DataFrame。Series是一维的标签化数组,类似于带有标签的NumPy数组。DataFrame是一个二维的表格型数据结构,可以看作是由多个Series组成的。Pandas提供了丰富的数据操作方法,包括数据的选择、过滤、排序、合并、分组、聚合等。此外,Pandas还提供了处理缺失数据、时间序列数据、数据可视化等功能。\[3\] NumPyPython中用于科学计算的基础,它提供了高性能的多维数组对象和相关的计算函数。NumPy的核心是ndarray(N-dimensional array)对象,它是一个多维的同类型数据容器,可以进行快速的向量化操作。NumPy提供了丰富的数学、逻辑、统计等函数,以及线性代数、傅里叶变换等功能。\[1\] Pandas和NumPy在数据处理和分析方面有着密切的关联。Pandas的数据结构和操作方法都是基于NumPy的ndarray对象构建的。Pandas提供了更高级的数据处理功能,使得数据的清洗、转换和分析更加方便。同时,Pandas还与其他Python科学计算和工具紧密结合,如SciPy、Matplotlib等,共同构成了Python科学计算生态系统的基础。\[2\]\[3\] 在实际应用中,可以使用Pandas和NumPy来处理和分析各种类型的数据。例如,可以使用Pandas读取和写入各种格式的数据文件,如CSV、Excel等;可以使用NumPy进行数值计算和数组操作;可以使用Pandas进行数据的清洗、转换和分析;可以使用Matplotlib进行数据的可视化等。通过灵活运用这两个的功能,可以更加高效地处理和分析数据。 #### 引用[.reference_title] - *1* [python的 numpy学习总结和介绍(超详细)模块](https://blog.csdn.net/weixin_66224671/article/details/125338729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【数据分析知识点】Numpy 和 Pandas的区别](https://blog.csdn.net/m0_59541412/article/details/130482080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊凯瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值