Pandas教程(非常详细)(第五部分)

接着Pandas教程(非常详细)(第四部分),继续讲述。

二十五、Pandas sample随机抽样

随机抽样,是统计学中常用的一种方法,它可以帮助我们从大量的数据中快速地构建出一组数据分析模型。在 Pandas 中,如果想要对数据集进行随机抽样,需要使用 sample() 函数

sample() 函数的语法格式如下:

python 复制代码
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

参数说明如下表所示:

参数名称 参数说明
n 表示要抽取的行数。
frac 表示抽取的比例,比如 frac=0.5,代表抽取总体数据的50%。
replace 布尔值参数,表示是否以有放回抽样的方式进行选择,默认为 False,取出数据后不再放回。
weights 可选参数,代表每个样本的权重值,参数值是字符串或者数组。
random_state 可选参数,控制随机状态,默认为 None,表示随机数据不会重复;若为 1 表示会取得重复数据。
axis 表示在哪个方向上抽取数据(axis=1 表示列/axis=0 表示行)。

**该函数返回与数据集类型相同的新对象,相当于 numpy.random.choice()。**实例如下:

python 复制代码
import pandas as pd
dict = {'name':["Jack", "Tom", "Helen", "John"],'age': [28, 39, 34, 36],'score':[98,92,91,89]}
info = pd.DataFrame(dict)
#默认随机选择两行
info.sample(n=2)
#随机选择两列
info.sample(n=2,axis=1)

输出结果:

name age score

3 John 36 89

0 Jack 28 98

score name

0 98 Jack

1 92 Tom

2 91 Helen

3 89 John

再来看一组示例:

python 复制代码
import pandas as pd
info = pd.DataFrame({'data1': [2, 6, 8, 0], 'data2': [2, 5, 0, 8], 'data3': [12, 2, 1, 8]}, index=['John', 'Parker', 'Smith', 'William'])
info
#随机抽取3个数据
info['data1'].sample(n=3)
#总体的50%
info.sample(frac=0.5, replace=True)
#data3序列为权重值,并且允许重复数据出现
info.sample(n=2, weights='data3', random_state=1)

输出结果:

随机选择3行数据:

William 0

Smith 8

Parker 6

Name: data1, dtype: int64

data1 data2 data3

John 2 2 12

William 0 8 8

data1 data2 data3

John 2 2 12

William 0 8 8

二十六、Pandas resample数据重采样

数据重采样是将时间序列从一个频率转换至另一个频率的过程,它主要有两种实现方式,分别是降采样和升采样,**降采样指将高频率的数据转换为低频率,升采样则与其恰好相反,**说明如下:

方法 说明
降采样 将高频率(间隔短)数据转换为低频率(间隔长)。
升采样 将低频率数据转换为高频率。

Pandas 提供了resample() 函数来实现数据的重采样。

1、降采样 resample()

通过 resample() 函数完成数据的降采样,比如按天计数的频率转换为按月计数。

python 复制代码
import pandas as pd
import numpy as np
rng = pd.date_range('1/1/2021',periods=100,freq='D')
ts = pd.Series(np.random.randn(len(rng)),index=rng)
#降采样后并聚合
ts.resample('M').mean()

输出结果:

2021-01-31 0.210353

2021-02-28 -0.058859

2021-03-31 -0.182952

2021-04-30 0.205254

Freq: M, dtype: float64

如果您只想看到月份,那么您可以设置kind=period如下所示:

python 复制代码
ts.resample('M',kind='period').mean()

输出结果:

2021-01 -0.153121

2021-02 0.136231

2021-03 -0.238975

2021-04 -0.309502

Freq: M, dtype: float64

2、升采样 asfreq()

升采样是将低频率(时间间隔)转换为高频率,示例如下:

python 复制代码
import pandas as pd
import numpy as np
#生成一份时间序列数据
rng = pd.date_range('1/1/2021', periods=20, freq='3D')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
print(ts.head())
#使用asfreq()在原数据基础上实现频率转换
ts.resample('D').asfreq().head()

输出结果:

升采样前:

2021-01-01 0.608716

2021-01-04 1.097451

2021-01-07 -1.280173

2021-01-10 -0.175065

2021-01-13 1.046831

Freq: 3D, dtype: float64

升采样后:

2021-01-01 0.608716

2021-01-02 NaN

2021-01-03 NaN

2021-01-04 1.097451

2021-01-05 NaN

Freq: D, dtype: float64

3、频率转换 asfreq()

asfreq() 方法不仅能够实现频率转换,还可以保留原频率对应的数值,同时它也可以单独使用,示例如下:

python 复制代码
index = pd.date_range('1/1/2021', periods=6, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0,4.0,5.0], index=index)
df = pd.DataFrame({'s':series})
print(df.asfreq("45s"))

输出结果:

num

2021-01-01 00:00:00 0.0

2021-01-01 00:00:45 NaN

2021-01-01 00:01:30 NaN

2021-01-01 00:02:15 NaN

2021-01-01 00:03:00 3.0

2021-01-01 00:03:45 NaN

2021-01-01 00:04:30 NaN

4、插值处理

从上述示例不难看出,升采样的结果会产生缺失值,那么就需要对缺失值进行处理,一般有以下几种处理方式:

方法 说明
pad/ffill 前一个非缺失值去填充缺失值。
backfill/bfill 后一个非缺失值去填充缺失值。
interpolater('linear') 线性插值方法
fillna(value) 指定一个值去替换缺失值。

下面使用插值方法处理 NaN 值,示例如下:

python 复制代码
import pandas as pd
import numpy as np
#创建时间序列数据
rng = pd.date_range('1/1/2021', periods=20, freq='3D')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
print(ts.resample('D').asfreq().head())
#使用ffill处理缺失值
ts.resample('D').asfreq().ffill().head()

输出结果:

2021-01-01 0.555580

2021-01-02 NaN

2021-01-03 NaN

2021-01-04 -0.079324

2021-01-05 NaN

Freq: D, dtype: float64

#插值处理,注意对比

2021-01-01 0.555580

2021-01-02 0.555580

2021-01-03 0.555580

2021-01-04 -0.079324

2021-01-05 -0.079324

Freq: D, dtype: float64

二十七、Python Pandas分类对象

通常情况下,数据集中会存在许多同一类别的信息,比如相同国家、相同行政编码、相同性别等,当这些相同类别的数据多次出现时,就会给数据处理增添许多麻烦,导致数据集变得臃肿,不能直观、清晰地展示数据。

针对上述问题,Pandas 提供了分类对象(Categorical Object),该对象能够实现有序排列、自动去重的功能,但是它不能执行运算。本节,我们了解一下分类对象的使用。

1、对象创建

我们可以通过多种方式创建分类对象,下面介绍以下两种方法:

(1) 指定dtype创建

python 复制代码
import pandas as pd
s = pd.Series(["a","b","c","a"], dtype="category")
print(s)

输出结果:

0 a

1 b

2 c

3 a

dtype: category Categories (3, object): [a, b, c]

通过上述示例,您可能会注意到,虽然传递给 Series 四个元素值,但是它的类别为 3,这是因为 a 的类别存在重复。

(2) pd.Categorical

通过 Category 的构造函数,您可以创建一个类别对象。构造函数,如下所示:

python 复制代码
pandas.Categorical(values, categories, ordered)

values:以列表的形式传参,表示要分类的值。

ordered:布尔值,默认为 False,若为 Ture,表示对分类的数据进行排序。

dtype:返回一个 category 类型,表示分类对象。

示例如下:

python 复制代码
import pandas as pd
#自动按a、b、c分类
cat = pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c'])
print(cat)

输出结果:

a, b, c, a, b, c

Categories (3, object): [a, b, c]

再看一组示例:

python 复制代码
import pandas as pd
cat=pd.Categorical(['a','b','c','a','b','c','d'], ['c', 'b', 'a'])
print(cat)

输出结果:

[a, b, c, a, b, c, NaN]

Categories (3, object): [c, b, a]

上述示例中,第二个参数值表示类别,当列表中不存在某一类别时,会自动将类别值设置为 NAN。

通过指定ordered=True来实现有序分类。示例如下:

python 复制代码
import pandas as pd
cat=pd.Categorical(['a','b','c','a','b','c','d'], ['c', 'b', 'a'],ordered=True)
print(cat)
#求最小值
print(cat.min())

输出结果:

a, b, c, a, b, c, NaN

Categories (3, object):[c < b < a] c

2、获取统计信息 describe()

对已经分类的数据使用 describe() 方法,您会得到和数据统计相关的摘要信息。

python 复制代码
import pandas as pd
import numpy as np
cat = pd.Categorical(["a", "c", "c", np.nan], categories=["b", "a", "c"])
df = pd.DataFrame({"cat":cat, "s":["a", "c", "c", np.nan]})
print(df.describe())
print(df["cat"].describe())

输出结果:

cat s

count 3 3

unique 2 2

top c c

freq 2 2

count 3

unique 2

top c

freq 2

Name: cat, dtype: object

3、获取类别属性 obj.categories

使用obj.categories命令可以获取对象的类别信息。示例如下:

python 复制代码
import pandas as pd
import numpy as np
s = pd.Categorical(["a", "c", "c", np.nan], categories=["b", "a", "c"])
print (s.categories)

输出结果:

Index(['b', 'a', 'c'], dtype='object')

通过 obj.order 可以获取 order 指定的布尔值

python 复制代码
import pandas as pd
import numpy as np
cat = pd.Categorical(["a", "c", "c", np.nan], categories=["b", "a", "c"])
#False表示未指定排序
print (cat.ordered)

输出结果:

False

4、重命名类别 Series.cat.categories

要想对类别实现重命名,可以通过Series.cat.categories来实现的,示例如下:

python 复制代码
import pandas as pd
s = pd.Series(["a","b","c","a"], dtype="category")
#对类名重命名
s.cat.categories = ["Group %s" % g for g in s.cat.categories]
print(s.cat.categories)

输出结果:

Index(['Group a', 'Group b', 'Group c'], dtype='object')

5、追加新类别 s.cat.add_categories()

使用 s.cat.add_categories() 方法,可以追加新类别。

python 复制代码
import pandas as pd
s = pd.Series(["a","b","c","a"], dtype="category")
#追加新类别
s = s.cat.add_categories([5])
#查看现有类别
print(s.cat.categories)

输出结果:

Index(['a', 'b', 'c', 5], dtype='object')

6、删除类别 remove_categories()

使用 remove_categories() 方法,可以删除不需要的类别。示例如下:

python 复制代码
import pandas as pd
s = pd.Series(["a","b","c","a"], dtype="category")
#原序列
print(s)
#删除后序列
print(s.cat.remove_categories("a"))

输出结果:

0 a

1 b

2 c

3 a

dtype: category

Categories (3, object): [a, b, c]

0 NaN

1 b

2 c

3 NaN

dtype: category

Categories (2, object): [b, c]

7、分类对象比较

在下述两种情况下,我们可以对分类对象进行比较:

  • 当两个类别对象长度相同时,可以进行比较运算;
  • 当两个类别的 ordered 均等于 True,并且类别相同时,可以进行比较运算,比如 ==,!=,>,>=,< 和 <=。

示例如下:

python 复制代码
import pandas as pd
s1=['a','a','b','d','c']
#当满足两个类别长度相同时
ss0=pd.Categorical(s1,categories=['a','d','b','c'])
ss1 = pd.Categorical(s1)
print(ss0==ss1)

输出结果:

array([ True, True, True, True, True])

这里ss0输出:['a','a','b','d','c'],Categories (4, object): ['a','d','b','c']

这里ss1输出:['a','a','b','d','c'],Categories (4, object): ['a','b','d','c']

示例如下:

python 复制代码
import pandas as pd
s1=['a','a','b','d','c']
s2=['a','b','b','d','c']
#满足上述第二个条件,类别相同,并且ordered均为True
ss0=pd.Categorical(s1,categories=['a','d','b','c'],ordered=True)
ss1 = pd.Categorical(s2,categories=['a','d','b','c'],ordered=True)
print(ss0<ss1)

输出结果:

array([False, True, False, False, False])

二十八、Python Pandas绘图教程

Pandas 在数据分析、数据可视化方面有着较为广泛的应用,Pandas 对 Matplotlib 绘图软件包的基础上单独封装了一个plot()接口 ,通过调用该接口可以实现常用的绘图操作。本节我们深入讲解一下 Pandas 的绘图操作。

Pandas 之所以能够实现了数据可视化,主要利用了 Matplotlib 库的 plot() 方法,它对 plot() 方法做了简单的封装,因此您可以直接调用该接口。下面看一组简单的示例:

python 复制代码
import pandas as pd
import numpy as np
#创建包含时间序列的数据
df = pd.DataFrame(np.random.randn(8,4),index=pd.date_range('2/1/2020',periods=8), columns=list('ABCD'))
df.plot()

输结果图,如下所示:

图1:Pandas绘图

如上图所示,如果行索引中包含日期,Pandas 会自动调用 gct().autofmt_xdate() 来格式化 x 轴

除了使用默认的线条绘图外,您还可以使用其他绘图方式,如下所示:

  • 柱状图:bar() 或 barh()
  • 直方图:hist()
  • 箱状箱:box()
  • 区域图:area()
  • 散点图:scatter()

通过**关键字参数kind**可以把上述方法传递给 plot()。

1、柱状图 df.plot.bar()

创建一个柱状图,如下所示:

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d','e'])
#或使用df.plot(kind="bar")
df.plot.bar()

输出结果:

图2:Pandas绘制柱状图

通过设置参数stacked=True可以生成柱状堆叠图,示例如下:

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10,5),columns=['a','b','c','d','e'])
df.plot(kind="bar",stacked=True)
#或者使用df.plot.bar(stacked="True")

输出结果:

图3:Pandas绘制柱状图

如果要绘制水平柱状图,您可以使用以下方法:df.plot.barh()

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
print(df)
df.plot.barh(stacked=True)

输出结果:

图4:水平柱状图

2、直方图 plot.hist()

**plot.hist()**可以实现绘制直方图,并且它还可以指定 bins(构成直方图的箱数)。

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':np.random.randn(100)+2,'B':np.random.randn(100),'C':
np.random.randn(100)-2}, columns=['A', 'B', 'C'])
print(df)
#指定箱数为15
df.plot.hist(bins=15)

输出结果:

图5:绘制直方图

每一列数据都绘制一个直方图 ,需要使以下方法:df.diff().hist()

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':np.random.randn(100)+2,'B':np.random.randn(100),'C':
np.random.randn(100)-2,'D':np.random.randn(100)+3},columns=['A', 'B', 'C','D'])
#使用diff绘制
df.diff().hist(color="r",alpha=0.5,bins=15)

输出结果:

图6:直方图绘制

3、箱型图 box.plot()/boxplot()

通过调用 Series.box.plot() 、DataFrame.box.plot() 或者 DataFrame.boxplot() 方法来绘制箱型图,它将每一列数据的分布情况,以可视化的图像展现出来。

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])
df.plot.box()

输出结果:

图7:绘制箱型图

4、区域图 plot.area()

您可以使用 **Series.plot.area() 或 DataFrame.plot.area()**方法来绘制区域图。

python 复制代码
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(5, 4), columns=['a', 'b', 'c', 'd'])
df.plot.area()

输出结果:

图8:绘制区域图

5、散点图 plot.scatter()

使用 DataFrame.plot.scatter() 方法来绘制散点图,如下所示:

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(30, 4), columns=['a', 'b', 'c', 'd'])
df.plot.scatter(x='a',y='b')

输出结果:

图9:绘制散点图

6、饼状图 plot.pie()

饼状图可以通过 DataFrame.plot.pie() 方法来绘制。示例如下:

python 复制代码
import pandas as pd
import numpy as np
df = pd.DataFrame(3 * np.random.rand(4), index=['go', 'java', 'c++', 'c'], columns=['L'])
df.plot.pie(subplots=True)

输出结果:

图10:Pandas绘制饼状图

二十九、Python Pandas读取文件

当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。Panda 提供了多种读取数据的方法:

  • read_csv() 用于读取文本文件
  • read_json() 用于读取 json 文件
  • read_sql_query() 读取 sql 语句的

本节将对上述方法做详细介绍。

1、CSV文件读取

CSV 又称逗号分隔值文件 ,是一种简单的文件格式,以特定的结构来排列表格数据。 CSV 文件能够以纯文本形式存储表格数据,比如电子表格、数据库文件,并具有数据交换的通用格式。CSV 文件会在 Excel 文件中被打开,其行和列都定义了标准的数据格式。

将 CSV 中的数据转换为 DataFrame 对象是非常便捷的。和一般文件读写不一样,它不需要你做打开文件、读取文件、关闭文件等操作。相反,您只需要一行代码就可以完成上述所有步骤,并将数据存储在 DataFrame 中。

下面进行实例演示,首先您需要创建一组数据,并将其保存为 CSV 格式,数据如下:

Name,Hire Date,Salary,Leaves Remaining

John Idle,08/15/14,50000.00,10

Smith Gilliam,04/07/15,65000.00,6

Parker Chapman,02/21/14,45000.00,7

Jones Palin,10/14/13,70000.00,3

Terry Gilliam,07/22/14,48000.00,9

Michael Palin,06/28/13,66000.00,8

注意:将上述数据保存到**.txt** 的文本文件中,然后将文件的扩展名后缀修改为 csv ,即可完成 csv 文件的创建。

接下来,我们使用下列代码读写数据: read_csv()

python 复制代码
import pandas
#仅仅一行代码就完成了数据读取,但是注意文件路径不要写错
df = pandas.read_csv('C:/Users/Administrator/Desktop/hrd.csv')
print(df)

输出结果:

Name Hire Date Salary Leaves Remaining

0 John Idle 08/15/14 50000.0 10

1 Smith Gilliam 04/07/15 65000.0 6

2 Parker Chapman 02/21/14 45000.0 7

3 Jones Palin 10/14/13 70000.0 3

4 Terry Gilliam 07/22/14 48000.0 9

5 Michael Palin 06/28/13 66000.0 8

在下一节会对 read_csv() 函数做详细讲解。

2、json读取文件 read_csv()

您可以通过下列方法来读取一个 json 文件,如下所示:

python 复制代码
import pandas as pd
data = pd.read_json('C:/Users/Administrator/Desktop/hrd.json')
print(data)

输出结果:

Name Hire Date Salary Leaves Remaining

0 John Idle 08/15/14 50000.0 10

1 Smith Gilliam 04/07/15 65000.0 6

2 Parker Chapman 02/21/14 45000.0 7

3 Jones Palin 10/14/13 70000.0 3

4 Terry Gilliam 07/22/14 48000.0 9

5 Michael Palin 06/28/13 66000.0 8

3、SQL数据库读取

如果想要从 SQL 数据库读取数据,首 您应该使用 Python 和数据库建立连接 ,然后将查询语句传递给 read_sql_query() 方法,下面做简单地演示:

(1) 安装pysqlite3模块

pip install pysqlite3

(2) 建立数据连接

python 复制代码
import sqlite3 
con = sqlite3.connect("database.db")

(3) 数据库读取数据

在 SQLite 数据库中创建一张信息表,您可以随意添加一些信息,最后使用下列方法读取数据即可:

python 复制代码
#con参数指定操作数据库的引擎,可以指定,也可默认
df = pd.read_sql_query("SELECT * FROM information",con) 

三十、Pandas csv读写文件

二十九节 中,我们讲解了多种用 Pandas 读写文件的方法。本节我们讲解如何应用这些方法 。

我们知道,文件的读写操作属于计算机的 IO 操作,Pandas IO 操作提供了一些读取器函数,比如 pd.read_csv()、pd.read_json 等,它们都返回一个 Pandas 对象。

在 Pandas 中用于读取文本的函数有两个,分别是: read_csv() 和 read_table(),它们能够自动地将表格数据转换为 DataFrame 对象。其中 read_csv 的语法格式,如下:

pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',names=None, index_col=None, usecols=None)

下面,新建一个 txt 文件,并添加以下数据:

ID,Name,Age,City,Salary

1,Jack,28,Beijing,22000

2,Lida,32,Shanghai,19000

3,John,43,Shenzhen,12000

4,Helen,38,Hengshui,3500

txt 文件另存为 person.csv 文件格式,直接修改文件扩展名即可。接下来,对此文件进行操作。

1、read_csv()

read_csv() 表示从 CSV 文件中读取数据,并创建 DataFrame 对象。

python 复制代码
import pandas as pd
#需要注意文件的路径
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv")
print (df)

输出结果:

ID Name Age City Salary

0 1 Jack 28 Beijing 22000

1 2 Lida 32 Shanghai 19000

2 3 John 43 Shenzhen 12000

3 4 Helen 38 Hengshui 3500

(1) 自定义索引

在 CSV 文件中指定了一个列,然后使用index_col可以实现自定义索引。

python 复制代码
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",index_col=['ID'])
print(df)

输出结果:

ID Name Age City Salary

1 Jack 28 Beijing 22000

2 Lida 32 Shanghai 19000

3 John 43 Shenzhen 12000

4 Helen 38 Hengshui 3500

(2) 查看每一列的dtype

python 复制代码
import pandas as pd
#转换salary为float类型
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",dtype={'Salary':np.float64})
print(df.dtypes)

输出结果:

ID int64

Name object

Age int64

City object

Salary float64

dtype: object

注意:默认情况下,Salary 列的 dtype 是 int 类型,但结果显示其为 float 类型,因为我们已经在上述代码中做了类型转换。

(3) 更改文件标头名

使用 names 参数可以指定头文件的名称。

python 复制代码
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",names=['a','b','c','d','e'])
print(df)

输出结果:

a b c d e

ID Name Age City Salary

0 1 Jack 28 Beijing 22000

1 2 Lida 32 Shanghai 19000

2 3 John 43 Shenzhen 12000

3 4 Helen 38 Hengshui 3500

注意:文件标头名是附加的自定义名称但是您会发现,原来的标头名(列标签名)并没有被删除,此时您可以使用header参数来删除它。

通过传递标头所在行号实现删除,如下所示:

python 复制代码
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",names=['a','b','c','d','e'],header=0)
print(df)

输出结果:

a b c d e

0 1 Jack 28 Beijing 22000

1 2 Lida 32 Shanghai 19000

2 3 John 43 Shenzhen 12000

3 4 Helen 38 Hengshui 3500

假如原标头名并没有定义在第一行,您也可以传递相应的行号来删除它。

(4) 跳过指定的行数

skiprows参数表示跳过指定的行数。

python 复制代码
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",skiprows=2)
print(df)

输出结果:

2 Lida 32 Shanghai 19000

0 3 John 43 Shenzhen 12000

1 4 Helen 38 Hengshui 3500

注意:包含标头所在行。

2、to_csv()

Pandas 提供的 to_csv() 函数用于将 DataFrame 转换为 CSV 数据。如果想要把 CSV 数据写入文件,只需向函数传递一个文件对象即可。否则,CSV 数据将以字符串格式返回。

下面看一组简单的示例:

python 复制代码
import pandas as pd
data = {'Name': ['Smith', 'Parker'], 'ID': [101, 102], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
print('DataFrame Values:\n', info)
#转换为csv数据
csv_data = info.to_csv()
print('\nCSV String Values:\n', csv_data)

输出结果:

DataFrame:

Name ID Language

0 Smith 101 Python

1 Parker 102 JavaScript

csv数据:

,Name,ID,Language

0,Smith,101,Python

1,Parker,102,JavaScript

指定 CSV 文件输出时的分隔符,并将其保存在 pandas.csv 文件中,代码如下:

python 复制代码
import pandas as pd
#注意:pd.NaT表示null缺失数据
data = {'Name': ['Smith', 'Parker'], 'ID': [101, pd.NaT], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
csv_data = info.to_csv("C:/Users/Administrator/Desktop/pandas.csv",sep='|')

后续内容将在Pandas教程(非常详细)(第六部分),继续讲述。

相关推荐
CodeCraft Studio3 小时前
Excel处理控件Aspose.Cells教程:使用 Python 将 Pandas DataFrame 转换为 Excel
python·json·excel·pandas·csv·aspose·dataframe
njxiejing4 小时前
Pandas数据结构(DataFrame,字典赋值)
数据结构·人工智能·pandas
Calihen的学习日志1 天前
【Pandas】3.1-数据预处理:列的基本操作
python·pandas
Source.Liu2 天前
【Python自动化】 21.2 Pandas 读取 Excel 时的 dtype 参数完全指南
python·自动化·pandas
Source.Liu2 天前
【Python自动化】 21 Pandas Excel 操作完整指南
python·excel·pandas
Source.Liu2 天前
【Python自动化】 21.1 Pandas 读取 Excel 文件的完整指南
python·自动化·pandas
偷心伊普西隆4 天前
Pandas DataFrame 指南
python·数据分析·pandas
chad__chang9 天前
Pandas的数据结构
数据结构·pandas
老歌老听老掉牙12 天前
Pandas DataFrame 列数操作完全指南
python·pandas
万粉变现经纪人12 天前
如何解决pip安装报错ModuleNotFoundError: No module named ‘websockets’问题
ide·pycharm·beautifulsoup·pandas·fastapi·pip·httpx