中文网:https://www.pypandas.cn/

  Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas 离这个目标已经越来越近了。

Pandas 适用于处理以下类型的数据:

  • 与 SQL 或 Excel 表类似的,含异构列的表格数据;
  • 有序和无序(非固定频率)的时间序列数据;
  • 带行列标签的矩阵数据,包括同构或异构型数据;
  • 任意其它形式的观测、统计数据集, 数据转入 Pandas 数据结构时不必事先标记。

Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。对于 R 用户,DataFrame 提供了比 R 语言 data.frame 更丰富的功能。Pandas 基于 NumPy 开发,可以与其它第三方科学计算支持库完美集成。

Pandas 就像一把万能瑞士军刀,下面仅列出了它的部分优势 :

  • 处理浮点与非浮点数据里的缺失数据,表示为 NaN
  • 大小可变:插入或删除 DataFrame 等多维对象的列;
  • 自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 Series、DataFrame 计算时自动与数据对齐;
  • 强大、灵活的分组(group by)功能:拆分-应用-组合数据集,聚合、转换数据;
  • 把 Python 和 NumPy 数据结构里不规则、不同索引的数据轻松地转换为 DataFrame 对象;
  • 基于智能标签,对大型数据集进行切片、花式索引、子集分解等操作;
  • 直观地合并(merge)、**连接(join)**数据集;
  • 灵活地重塑(reshape)、**透视(pivot)**数据集;
  • 轴支持结构化标签:一个刻度支持多个标签;
  • 成熟的 IO 工具:读取文本文件(CSV 等支持分隔符的文件)、Excel 文件、数据库等来源的数据,利用超快的 HDF5 格式保存 / 加载数据;
  • 时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能。

这些功能主要是为了解决其它编程语言、科研环境的痛点。处理数据一般分为几个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是处理数据的理想工具。

其它说明:

  • Pandas 速度很快。Pandas 的很多底层算法都用 Cython 优化过。然而,为了保持通用性,必然要牺牲一些性能,如果专注某一功能,完全可以开发出比 Pandas 更快的专用工具。
  • Pandas 是 statsmodels 的依赖项,因此,Pandas 也是 Python 中统计计算生态系统的重要组成部分。
  • Pandas 已广泛应用于金融领域。

#数据结构

维数 名称 描述
1 Series 带标签的一维同构数组
2 DataFrame 带标签的,大小可变的,二维异构表格

小示例:

  1. 列举目录下文件的名称并写入文件中

import pandas as pd
import os dir_path = './event-data' names = os.listdir(dir_path) result = []
for name in names:
if name.endswith('.csv'):
result.append(name) pd_result = pd.DataFrame(result)
pd_result.to_csv('names.csv', encoding='utf-8-sig') # utf-8-sig编码可以避免名称有中文时乱码

  2. 将目录下多个文件中的数据进行合并

import pandas as pd
import os dir_path = './event-data' names = os.listdir(dir_path) file_merge = pd.DataFrame() for name in names:
print(name)
if name.endswith('.csv'):
df = pd.read_csv(os.path.join(dir_path, name))
file_merge = file_merge.append(df) file_merge.to_csv('event-data.csv', index=None)

更多其他操作:

  • read_sql()
  • to_sql()
  • read_clipboard()
  • from_dict()
  • to_dict()
  • to_clipboard()
  • read_json()
  • to_json()
  • read_html()
  • to_html()
  • read_table()
  • read_csv()
  • to_csv()
  • read_excel()
  • to_excel()
  • read_xml()
  • to_xml()
  • read_pickle()
  • to_pickle()

read_sql()to_sql()

我们一般读取数据都是从数据库中来读取的,因此可以在read_sql()方法中填入对应的sql语句然后来读取我们想要的数据,

pd.read_sql(sql, con, index_col=None,
            coerce_float=True, params=None,
            parse_dates=None,
            columns=None, chunksize=None)

参数详解如下:

  • sql: SQL命令字符串
  • con: 连接SQL数据库的Engine,一般用SQLAlchemy或者是PyMysql之类的模块来建立
  • index_col:选择某一列作为Index
  • coerce_float:将数字形式的字符串直接以float型读入
  • parse_dates: 将某一列日期型字符串传唤为datatime型数据,可以直接提供需要转换的列名以默认的日期形式转换,或者也可以提供字典形式的列名和转换日期的格式,

我们用PyMysql这个模块来连接数据库,并且读取数据库当中的数据,首先我们导入所需要的模块,并且建立起与数据库的连接

import pandas as pd
from pymysql import *

conn = connect(host='localhost', port=3306, database='database_name',
               user='', password='', charset='utf8')

我们简单地写一条SQL命令来读取数据库当中的数据,并且用read_sql()方法来读取数据

sql_cmd = "SELECT * FROM table_name"
df = pd.read_sql(sql_cmd, conn)
df.head()

上面提到read_sql()方法当中parse_dates参数可以对日期格式的数据进行处理,那我们来试一下其作用

sql_cmd_2 = "SELECT * FROM test_date"
df_1 = pd.read_sql(sql_cmd_2, conn)
df_1.head()

output

  number  date_columns
0    1      2021-11-11
1    2      2021-10-01
2    3      2021-11-10

我们来看一个各个列的数据类型

df_1.info()

output

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
 #   Column        Non-Null Count  Dtype 
---  ------        --------------  ----- 
 0   number        3 non-null      int64 
 1   date_columns  3 non-null      object
dtypes: int64(1), object(1)
memory usage: 176.0+ bytes

正常默认情况下,date_columns这一列也是被当做是String类型的数据,要是我们通过parse_dates参数将日期解析应用与该列

df_2 = pd.read_sql(sql_cmd_2, conn, parse_dates="date_columns")
df_2.info()

output

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
 #   Column        Non-Null Count  Dtype         
---  ------        --------------  -----         
 0   number        3 non-null      int64         
 1   date_columns  3 non-null      datetime64[ns]
dtypes: datetime64[ns](1), int64(1)
memory usage: 176.0 bytes

就转换成了相对应的日期格式,当然我们还可以采用上面提到的另外一种格式

parse_dates={"date_column": {"format": "%d/%m/%y"}})

to_sql()方法

我们来看一下to_sql()方法,作用是将DataFrame当中的数据存放到数据库当中,请看下面的示例代码,我们创建一个基于内存的SQLite数据库

from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)

然后我们创建一个用于测试的数据集,并且存放到该数据库当中,

df = pd.DataFrame({'num': [1, 3, 5]})
df.to_sql('nums', con=engine)

查看一下是否存取成功了

engine.execute("SELECT * FROM nums").fetchall()

output

[(0, 1), (1, 3), (2, 5)]

我们可以尝试着往里面添加数据

df2 = pd.DataFrame({'num': [7, 9, 11]})
df2.to_sql('nums', con=engine, if_exists='append')
engine.execute("SELECT * FROM nums").fetchall()

output

[(0, 1), (1, 3), (2, 5), (0, 7), (1, 9), (2, 11)]

注意到上面的if_exists参数上面填的是append,意味着添加新数据进去,当然我们也可以将原有的数据替换掉,将append替换成replace

df2.to_sql('nums', con=engine, if_exists='replace')
engine.execute("SELECT * FROM nums").fetchall()

output

[(0, 7), (1, 9), (2, 11)]

from_dict()方法和to_dict()方法

有时候我们的数据是以字典的形式存储的,有对应的键值对,我们如何根据字典当中的数据来创立DataFrame,假设

a_dict = {
    '学校': '清华大学',
    '地理位置': '北京',
    '排名': 1
}

一种方法是调用json_normalize()方法,代码如下

df = pd.json_normalize(a_dict)

output

     学校 地理位置  排名
0  清华大学   北京   1

当然我们直接调用pd.DataFrame()方法也是可以的

df = pd.DataFrame(json_list, index = [0])

output

     学校 地理位置  排名
0  清华大学   北京   1

当然我们还可以用from_dict()方法,代码如下

df = pd.DataFrame.from_dict(a_dict,orient='index').T

output

     学校 地理位置  排名
0  清华大学   北京   1

这里最值得注意的是orient参数,用来指定字典当中的键是用来做行索引还是列索引,请看下面两个例子

data = {'col_1': [1, 2, 3, 4],
       'col_2': ['A', 'B', 'C', 'D']}

我们将orient参数设置为columns,将当中的键当做是列名

df = pd.DataFrame.from_dict(data, orient='columns')

output

   col_1 col_2
0      1     A
1      2     B
2      3     C
3      4     D

当然我们也可以将其作为是行索引,将orient设置为是index

df = pd.DataFrame.from_dict(data, orient='index')

output

       0  1  2  3
col_1  1  2  3  4
col_2  A  B  C  D

to_dict()方法

语法如下:

df.to_dict(orient='dict')

针对orient参数,一般可以填这几种形式

一种是默认的dict,代码如下

df = pd.DataFrame({'shape': ['square', 'circle', 'triangle'],
                   'degrees': [360, 360, 180],
                   'sides': [4, 5, 3]})
df.to_dict(orient='dict')

output

{'shape': {0: 'square', 1: 'circle', 2: 'triangle'}, 'degrees': {0: 360, 1: 360, 2: 180}, 'sides': {0: 4, 1: 5, 2: 3}}

也可以是list,代码如下

df.to_dict(orient='list')

output

{'shape': ['square', 'circle', 'triangle'], 'degrees': [360, 360, 180], 'sides': [4, 5, 3]}

除此之外,还有split,代码如下

df.to_dict(orient='split')

output

{'index': [0, 1, 2], 'columns': ['shape', 'degrees', 'sides'], 'data': [['square', 360, 4], ['circle', 360, 5], ['triangle', 180, 3]]}

还有records,代码如下

df.to_dict(orient='records')

output

[{'shape': 'square', 'degrees': 360, 'sides': 4}, {'shape': 'circle', 'degrees': 360, 'sides': 5}, {'shape': 'triangle', 'degrees': 180, 'sides': 3}]

最后一种是index,代码如下

df.to_dict(orient='index')

output

{0: {'shape': 'square', 'degrees': 360, 'sides': 4}, 1: {'shape': 'circle', 'degrees': 360, 'sides': 5}, 2: {'shape': 'triangle', 'degrees': 180, 'sides': 3}}

read_json()方法和to_json()方法

我们经常也会在实际工作与学习当中遇到需要去处理JSON格式数据的情况,我们用Pandas模块当中的read_json()方法来进行处理,我们来看一下该方法中常用到的参数

orient:对应JSON字符串的格式主要有

  • split: 格式类似于:{index: [index], columns: [columns], data: [values]}

例如我们的JSON字符串长这样

a = '{"index":[1,2,3],"columns":["a","b"],"data":[[1,3],[2,8],[3,9]]}'
df = pd.read_json(a, orient='split')

output

   a  b
1  1  3
2  2  8
3  3  9
  • records: 格式类似于:[{column: value}, ... , {column: value}]

例如我们的JSON字符串长这样

a = '[{"name":"Tom","age":"18"},{"name":"Amy","age":"20"},{"name":"John","age":"17"}]'
df_1 = pd.read_json(a, orient='records')

output

   name  age
0   Tom   18
1   Amy   20
2  John   17
  • index: 格式类似于:{index: {column: value}}

例如我们的JSON字符串长这样

a = '{"index_1":{"name":"John","age":20},"index_2":{"name":"Tom","age":30},"index_3":{"name":"Jason","age":50}}'
df_1 = pd.read_json(a, orient='index')

output

          name  age
index_1   John   20
index_2    Tom   30
index_3  Jason   50
  • columns: 格式类似于:{column: {index: value}}

我们要是将上面的index变成columns,就变成

df_1 = pd.read_json(a, orient='columns')

output

     index_1 index_2 index_3
name    John     Tom   Jason
age       20      30      50
  • values: 数组

例如我们的JSON字符串长这样

v='[["a",1],["b",2],["c", 3]]'
df_1 = pd.read_json(v, orient="values")

output

   0  1
0  a  1
1  b  2
2  c  3

to_json()方法

DataFrame数据对象输出成JSON字符串,可以使用to_json()方法来实现,其中orient参数可以输出不同格式的字符串,用法和上面的大致相同,这里就不做过多的赘述

read_html()方法和to_html()方法

有时候我们需要抓取网页上面的一个表格信息,相比较使用Xpath或者是Beautifulsoup,我们可以使用pandas当中已经封装好的函数read_html来快速地进行获取,例如我们通过它来抓取菜鸟教程Python网站上面的一部分内容

url = "https://www.runoob.com/python/python-exceptions.html"
dfs = pd.read_html(url, header=None, encoding='utf-8')

返回的是一个listDataFrame对象

df = dfs[0]
df.head()

output

                异常名称               描述
0                NaN              NaN
1      BaseException          所有异常的基类
2         SystemExit          解释器请求退出
3  KeyboardInterrupt  用户中断执行(通常是输入^C)
4          Exception          常规错误的基类

当然read_html()方法也支持读取HTML形式的表格,我们先来生成一个类似这样的表格,通过to_html()方法

df = pd.DataFrame(np.random.randn(3, 3))
df.to_html("test_1.html")

当然这个HTML形式的表格长这个样子

然后我们再通过read_html方法读取该文件,

dfs = pd.read_html("test_1.html")
dfs[0]

read_csv()方法和to_csv()方法

read_csv()方法

read_csv()方法是最常被用到的pandas读取数据的方法之一,其中我们经常用到的参数有

  • filepath_or_buffer: 数据输入的路径,可以是文件的路径的形式,例如
pd.read_csv('data.csv')

output

   num1  num2  num3  num4
0     1     2     3     4
1     6    12     7     9
2    11    13    15    18
3    12    10    16    18

也可以是URL,如果访问该URL会返回一个文件的话

pd.read_csv("http://...../..../data.csv")
  • sep: 读取csv文件时指定的分隔符,默认为逗号,需要注意的是:“csv文件的分隔符”要和“我们读取csv文件时指定的分隔符”保持一致

假设我们的数据集,csv文件当中的分隔符从逗号改成了"\t",需要将sep参数也做相应的设定

pd.read_csv('data.csv', sep='\t')
  • index_col: 我们在读取文件之后,可以指定某一列作为DataFrame的索引
pd.read_csv('data.csv', index_col="num1")

output

      num2  num3  num4
num1                  
1        2     3     4
6       12     7     9
11      13    15    18
12      10    16    18

除了指定单个列,我们还可以指定多个列,例如

df = pd.read_csv("data.csv", index_col=["num1", "num2"])

output

           num3  num4
num1 num2            
1    2        3     4
6    12       7     9
11   13      15    18
12   10      16    18
  • usecols:如果数据集当中的列很多,而我们并不想要全部的列、而是只要指定的列就可以,就可以使用这个参数
pd.read_csv('data.csv', usecols=["列名1", "列名2", ....])

output

   num1  num2
0     1     2
1     6    12
2    11    13
3    12    10

除了指定列名之外,也可以通过索引来选择想要的列,示例代码如下

df = pd.read_csv("data.csv", usecols = [0, 1, 2])

output

   num1  num2  num3
0     1     2     3
1     6    12     7
2    11    13    15
3    12    10    16

另外usecols参数还有一个比较好玩的地方在于它能够接收一个函数,将列名作为参数传递到该函数中调用,要是满足条件的,就选中该列,反之则不选择该列

# 选择列名的长度大于 4 的列
pd.read_csv('girl.csv', usecols=lambda x: len(x) > 4)
  • prefix: 当导入的数据没有header的时候,可以用来给列名添加前缀
df = pd.read_csv("data.csv", header = None)

output

      0     1     2     3
0  num1  num2  num3  num4
1     1     2     3     4
2     6    12     7     9
3    11    13    15    18
4    12    10    16    18

如果我们将header设为None,pandas则会自动生成表头0, 1, 2, 3..., 然后我们设置prefix参数为表头添加前缀

df = pd.read_csv("data.csv", prefix="test_", header = None)

output

  test_0 test_1 test_2 test_3
0   num1   num2   num3   num4
1      1      2      3      4
2      6     12      7      9
3     11     13     15     18
4     12     10     16     18
  • skiprows: 过滤掉哪些行,参数当中填行的索引

代码如下:

df = pd.read_csv("data.csv", skiprows=[0, 1])

output

    6  12   7   9
0  11  13  15  18
1  12  10  16  18

上面的代码过滤掉了前两行的数据,直接将第三行与第四行的数据输出,当然我们也可以看到第二行的数据被当成是了表头

  • nrows: 该参数设置一次性读入的文件行数,对于读取大文件时非常有用,比如 16G 内存的PC无法容纳几百G的大文件

代码如下:

df = pd.read_csv("data.csv", nrows=2)

output

   num1  num2  num3  num4
0     1     2     3     4
1     6    12     7     9

to_csv()方法

该方法主要是用于将DataFrame写入csv文件当中,示例代码如下

df.to_csv("文件名.csv", index = False)

我们还能够输出到zip文件的格式,代码如下

df = pd.read_csv("data.csv")
compression_opts = dict(method='zip',
                        archive_name='output.csv')
df.to_csv('output.zip', index=False,
          compression=compression_opts)

read_excel()方法和to_excel()方法

read_excel()方法

要是我们的数据是存放在excel当中就可以使用read_excel()方法,该方法中的参数和上面提到的read_csv()方法相差不多,这里就不做过多的赘述,我们直接来看代码

df = pd.read_excel("test.xlsx")
  • dtype: 该参数能够对指定某一列的数据类型加以设定
df = pd.read_excel("test.xlsx", dtype={'Name': str, 'Value': float})

output

    Name  Value
0  name1    1.0
1  name2    2.0
2  name3    3.0
3  name4    4.0
  • sheet_name: 对于读取excel当中的哪一个sheet当中的数据加以设定
df = pd.read_excel("test.xlsx", sheet_name="Sheet3")

output

    Name  Value
0  name1     10
1  name2     10
2  name3     20
3  name4     30

当然我们要是想一次性读取多个Sheet当中的数据也是可以的,最后返回的数据是以dict形式返回的

df = pd.read_excel("test.xlsx", sheet_name=["Sheet1", "Sheet3"])

output

{'Sheet1':     Name  Value
0  name1      1
1  name2      2
2  name3      3
3  name4      4, 'Sheet3':     Name  Value
0  name1     10
1  name2     10
2  name3     20
3  name4     30}

例如我们只想要Sheet1的数据,可以这么来做

df1.get("Sheet1")

output

    Name  Value
0  name1      1
1  name2      2
2  name3      3
3  name4      4

to_excel()方法

DataFrame对象写入Excel表格,除此之外还有ExcelWriter()方法也有着异曲同工的作用,代码如下

df1 = pd.DataFrame([['A', 'B'], ['C', 'D']],
                   index=['Row 1', 'Row 2'],
                   columns=['Col 1', 'Col 2'])
df1.to_excel("output.xlsx")

当然我们还可以指定Sheet的名称

df1.to_excel("output.xlsx", sheet_name='Sheet_Name_1_1_1')

有时候我们需要将多个DataFrame数据集输出到一个Excel当中的不同的Sheet当中

df2 = df1.copy()
with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet_name_1_1_1')
    df2.to_excel(writer, sheet_name='Sheet_name_2_2_2')

我们还可以在现有的Sheet的基础之上,再添加一个Sheet

df3 = df1.copy()
with pd.ExcelWriter('output.xlsx', mode="a", engine="openpyxl") as writer:
    df3.to_excel(writer, sheet_name='Sheet_name_3_3_3')

我们可以生成至Excel文件并且进行压缩包处理

with zipfile.ZipFile("output_excel.zip", "w") as zf:
    with zf.open("output_excel.xlsx", "w") as buffer:
        with pd.ExcelWriter(buffer) as writer:
            df1.to_excel(writer)

对于日期格式或者是日期时间格式的数据,也能够进行相应的处理

from datetime import date, datetime
df = pd.DataFrame(
    [
        [date(2019, 1, 10), date(2021, 11, 24)],
        [datetime(2019, 1, 10, 23, 33, 4), datetime(2021, 10, 20, 13, 5, 13)],
    ],
    index=["Date", "Datetime"],
    columns=["X", "Y"],
)
with pd.ExcelWriter(
    "output_excel_date.xlsx",
    date_format="YYYY-MM-DD",
    datetime_format="YYYY-MM-DD HH:MM:SS"
) as writer:
    df.to_excel(writer)

多行数据处理实例:
def write_excel():
table = pd.DataFrame(columns=['name', 'age', 'sex']) # 执行字段
# 追加数据
table.loc[0] = ['ixng', 23, 'nan'] # 指定索引数据
table.loc[1] = ['ixa', 30, 'nv']
print(table)
table.to_excel('test.xlsx', index=False)


read_table()方法

对于txt文件,既可以用read_csv()方法来读取,也可以用read_table()方法来读取,其中的参数和read_csv()当中的参数大致相同,这里也就不做过多的赘述

df = pd.read_table("test.txt", names = ["col1", "col2"], sep=' ')

output

   col1  col2
0     1     2
1     3     4
2     5     6
3     7     8
4     9    10
5    11    12

我们要读取的txt文件当中的数据是以空格隔开的,因此再sep参数上面需要设置成空格

read_pickle()方法和to_pickle()方法

Python当中的Pickle模块实现了对一个Python对象结构的二进制序列和反序列化,序列化过程是将文本信息转变为二进制数据流,同时保存数据类型。例如数据处理过程中,突然有事儿要离开,可以直接将数据序列化到本地,这时候处理中的数据是什么类型,保存到本地也是同样的类型,反序列化之后同样也是该数据类型,而不是从头开始处理

to_pickle()方法

我们先将DataFrame数据集生成pickle文件,对数据进行永久储存,代码如下

df1.to_pickle("test.pkl")

read_pickle()方法

代码如下

df2 = pd.read_pickle("test.pkl")

read_xml()方法和to_xml()方法

XML指的是可扩展标记语言,和JSON类似也是用来存储和传输数据的,还可以用作配置文件

XML和HTML之间的差异

XML和HTML为不同的目的而设计的

  • XML被设计用来传输和存储数据,其重点是数据的内容
  • HTML被设计用来显示数据,其焦点是数据的外观
  • XML不会替代HTML,是对HTML的补充

对XML最好的理解是独立于软件和硬件的信息传输工具,我们先通过to_xml()方法生成XML数据

df = pd.DataFrame({'shape': ['square', 'circle', 'triangle'],
                   'degrees': [360, 360, 180],
                   'sides': [4, np.nan, 3]})
df.to_xml("test.xml")

我们用pandas中的read_xml()方法来读取数据

df = pd.read_xml("test.xml")

output

      shape  degrees  sides
0    square      360    4.0
1    circle      360    NaN
2  triangle      180    3.0

read_clipboard()方法

有时候数据获取不太方便,我们可以通过复制的方式,通过Pandas当中的read_clipboard()方法来读取复制成功的数据,例如我们选中一部分数据,然后复制,运行下面的代码

df_1 = pd.read_clipboard()

output

   num1  num2  num3  num4
0     1     2     3     4
1     6    12     7     9
2    11    13    15    18
3    12    10    16    18

to_clipboard()方法

有复制就会有粘贴,我们可以将DataFrame数据集输出至剪贴板中,粘贴到例如Excel表格中

df.to_clipboard()

Python之pandas操作的更多相关文章

  1. Python之Pandas操作csv文件dataframe

    # -*- coding: utf-8 -*- # author:baoshan import pandas as pd def main(): aqi_data = pd.read_csv('chi ...

  2. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  3. Python Pandas操作Excel

    Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...

  4. 【Python自动化Excel】pandas操作Excel的“分分合合”

    话说Excel数据表,分久必合.合久必分.Excel数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...

  5. 【Python自动化Excel】Python与pandas字符串操作

    Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...

  6. Python利用pandas处理Excel数据的应用

    Python利用pandas处理Excel数据的应用   最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...

  7. 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

    在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...

  8. 基于 Python 和 Pandas 的数据分析(1)

    基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性 ...

  9. python之pandas简单介绍及使用(一)

    python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...

  10. Python之Pandas中Series、DataFrame

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

随机推荐

  1. 最小化安装killall不可用

    最小化安装killall不可用 最小化安装Centos7.4后,发现killall命令不可用 使用了以下命令,查看软件包名: yum search killall 查找后发现应使用这个安装包 yum ...

  2. C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  3. Windows 调试工具课程

    本文是我在集团内部上的课程记录而成的博客内容.在本次课程里面将和大家介绍一些在 Windows 上常用的调试工具,以及调查问题的常见套路.适合于伙伴们入门 Windows 调试 本文以下内容是采用原本 ...

  4. .net6 使用gRPC示例

    创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(客户端),测试项目结构如下: 公共模型 测试接口相关类,放在公共类库中,方便服务端和客户端引用相同模型 public class R ...

  5. 【赵渝强老师】NoSQL数据库之Cassandra基础

    一.Cassandra简介 Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable.其主要功能比Dynamo (分布式的Key-Value存储系统)更丰富,但支持度却不如 ...

  6. 最小代价的 SSO 单点登录方案

    现在有多个 WebApp,想用最小的代价实现 SSO 单点登录.所谓最小代价,我的理解就是对原有 WebApp 的改动最小,因此 在旁路增加一个 SsoWebApp 用于管理 SSO 的账号,进行身份 ...

  7. USB gadget configfs

    概述 USB Linux Gadget是一种具有UDC (USB设备控制器)的设备,可以连接到USB主机,以扩展其附加功能,如串口或大容量存储能力. 一个gadget被它的主机视为一组配置,每个配置都 ...

  8. KPTI——可以缓解“熔断” (Meltdown) 漏洞的内核新特性

    Linux 内核修复办法:内核页表隔离KPTl(kernel page table isolation) 每个进程一张页表变成两张:运行在内核态和运行在用户态时分别使用各自分离的页表 Kernel页表 ...

  9. C# 中的数组使用

    · // 数组 /// 数组是一组相同类型的数据(ps:js中的数组可以不同类型) 访问通过索引访问数组元素 /// 数组的声明 要使用 new 使用 {} 来初始化数组元素 还需要指定数组的大小 / ...

  10. signalR的身份认证