脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Pandas入门的12个技巧

Pandas入门的12个技巧

2024-01-03 19:59哈希编程 Python

今天,就为大家总结一下 “Pandas数据处理的12技巧”,拿来即用,随查随用。

今天,就为大家总结一下 “Pandas数据处理的12技巧”,拿来即用,随查随用。

Pandas入门的12个技巧

今天,就为大家总结一下 “Pandas数据处理的12技巧”,拿来即用,随查随用。

1. 安装

你还可以使用内置的 Python 工具 pip 安装 Pandas 并运行以下命令:

$ pip install pandas

安装完成后的提示成功,则可以环境中使用pandas包了。

import pandas

2. 创建数据列

Pandas一维数组(数据列)可以保存任何数据类型。一般通过调用 pd.Series() 方法实现,不指定index,默认为0,1,2,3...。

import pandas
import numpy

S = pandas.Series(
    [1, 2, 3, 4],  # 数据
    index=["a", "b", "c", "d"],  # 指定索引
    dtype=numpy.int8,  # 指定数据类型
)
S.name = "test"  # 创建一维数组的名称
S.index.name = "index"  # 创建一维数组的索引名称
print(S)

输出:

index
a    1
b    2
c    3
d    4
Name: test, dtype: int8

3. 创建数据框

创建具有列的二维数据结构的对象(数据框)。一般通过调用 pd.DataFrame() 方法实现,不指定index,默认为0,1,2,3...。

import pandas

dat_list = [
    [1, 2, 3],
    [4, 6, 8],
    [10, 11, 12],
]
df = pandas.DataFrame(
    dat_list,
    index=["i1", "i3", "i2"],
    columns=["a", "b", "c"],
)
print(df)

输出:

a   b   c
i1   1   2   3
i3   4   6   8
i2  10  11  12

4. CSV文件的读写

Pandas 支持从 CSV的读写,我们用 pd.read_csv() 和 pd.to_csv() 方法来实现。

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)
df.to_csv("output/test.csv") # 导出到CSV文件
dfnew = pandas.read_csv("output/test.csv", index_col=0) # index_col=0 表示第一列为索引
print(dfnew)

5. Excel文件的读写

Pandas 支持从 Excel的读写,我们用 pd.read_excel() 和 pd.to_excel() 方法来实现。

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)
df.to_excel("output/test.xlsx") # 导出到excel
dfnew = pandas.read_excel("output/test.xlsx", index_col=0) # index_col=0 表示第一列为索引
print(dfnew)

6. 通过位置选择值

Pandas 支持通过位置选择值,我们用 df.iloc[row_index, column_index] 来实现。

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)

print(df.iloc[2, 1])  # 6 结果为一个值
print(df.iloc[[2], [1]])  # 结果为一个元素的数据框
print(df.iloc[1:3, :])  # 结果为一个数据框

输出:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i3  3  6  9  12
6
    B
i3  6
    A  B  C   D
i1  2  5  8  11
i3  3  6  9  12

7. 通过名称选择值

Pandas 支持通过名称选择值,我们用 df.loc[row_name, column_name] 来实现。

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)

print(df.loc["i2", "C"])  # 6 结果为一个值
print(df.loc[["i2"], ["C"]])  # 结果为一个元素的数据框
print(df.loc[["i2", "i3"], ["A", "D"]])  # 切片

输出:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i3  3  6  9  12
7
    C
i2  7
    A   D
i2  1  10
i3  3  12

8. 标签可以重复么?

这是一个有意思的问题,如果重复了如何取值呢,如何去掉重复呢?

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i2"])
print(df)
print(df.loc["i2", "C"])
df.columns = ["A", "B", "B", "D"]
print(df)
print(df.loc["i2", "B"])

输出:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i2  3  6  9  12
i2    7
i2    9
Name: C, dtype: int64
    A  B  B   D
i2  1  4  7  10
i1  2  5  8  11
i2  3  6  9  12
    B  B
i2  4  7
i2  6  9

9. 删除行/列

Pandas 支持删除行/列,我们用 df.drop([col/row name], axis=0/1) 来实现。

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)
df.drop(
    ["i2", "i1"],
    axis=0,  # axis=0删除行,axis=1删除列
    inplace=True, # 如果为True,则在原数据上进行操作,否则,创建一个新的数据对象
    errors="ignore",  # 忽略不存在的列
)
print(df)

输出:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i3  3  6  9  12
    A  B  C   D
i3  3  6  9  12

10. 在最后增加列

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12]
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)
df['E'] = 0
print(df)

输出为:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i3  3  6  9  12
    A  B  C   D  E
i2  1  4  7  10  0
i1  2  5  8  11  0
i3  3  6  9  12  0

11. 在最后增加行

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12],
}
df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)
df = df.append(
    pandas.DataFrame({"A": 13, "B": 14, "C": 15, "D": 16}, index=["i4"]),
    ignore_index=True,
)
print(df)

输出:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i3  3  6  9  12
    A   B   C   D
0   1   4   7  10
1   2   5   8  11
2   3   6   9  12
3  13  14  15  16

12. 通过标签(索引或列名)排序

import pandas

d = {
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9],
    "D": [10, 11, 12]
}

df = pandas.DataFrame(d, index=["i2", "i1", "i3"])
print(df)
df = df.sort_index(
    axis=0, # axis=0 按行标签排序,axis=1 按列标签排序
    level=None,
    ascending=True, # 是否升序
    inplace=False, # 是否修改原数据
    kind="quicksort", # 排序算法
    na_positinotallow="last", # 如果有NA值,放在最后
    sort_remaining=True, # 是否排序剩余列
)
print(df)

输出:

A  B  C   D
i2  1  4  7  10
i1  2  5  8  11
i3  3  6  9  12
    A  B  C   D
i1  2  5  8  11
i2  1  4  7  10
i3  3  6  9  12

总结

上面分享的pandas入门的12个技巧,希望对你有所帮助。

原文地址:https://mp.weixin.qq.com/s?__biz=MzkwMzYxODY0Mg==&mid=2247484150&idx=1&sn=72f4cae71db8a42a0354314a7de62e11

延伸 · 阅读

精彩推荐
  • Python解决Python字典查找报Keyerror的问题

    解决Python字典查找报Keyerror的问题

    这篇文章主要介绍了解决Python字典查找报Keyerror的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    幸运的Alina8092021-11-14
  • Python详解Python+Turtle绘制奥运标志的实现

    详解Python+Turtle绘制奥运标志的实现

    turtle库是Python标准库之一,是入门级的图形绘制函数库。本文就将利用turtle库绘制一个奥运标志—奥运五环,感兴趣的可以学习一下...

    梦想画家12462022-09-19
  • PythonPyqt5实现英文学习词典

    Pyqt5实现英文学习词典

    这篇文章主要为大家详细介绍了Pyqt5实现英文学习词典的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    俊俊~9432021-07-19
  • Pythonpyhanlp安装介绍和简单应用

    pyhanlp安装介绍和简单应用

    这篇文章主要介绍了pyhanlp安装介绍和简单应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    人工智站10282021-06-01
  • Pythonpython实现象棋游戏

    python实现象棋游戏

    这篇文章主要为大家详细介绍了python实现象棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Moyan_03079992022-12-26
  • Python获取python运行输出的数据并解析存为dataFrame实例

    获取python运行输出的数据并解析存为dataFrame实例

    这篇文章主要介绍了获取python运行输出的数据并解析存为dataFrame实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    喝粥也会胖的唐僧7552020-07-08
  • Pythonpython如何实现远程控制电脑(结合微信)

    python如何实现远程控制电脑(结合微信)

    这篇文章主要介绍了python如何实现远程控制电脑,利用python设计了一个程序来实现自由管控,感兴趣的小伙伴们可以参考一下 ...

    xfk5202020-08-04
  • Pythonpython将字符串转换成json的方法小结

    python将字符串转换成json的方法小结

    这篇文章主要介绍了python将字符串转换成json的方法小结,通过实例代码给大家介绍将字符串型的数据转换成dict类型遇到的问题,需要的朋友可以参考下...

    legehappy4642021-08-05