Python Pandas 中的各种文本数据类型是什么?


在 python pandas 中(从 1.0.0 版到最新版 1.2.4)存储文本数据有两种方法。就此而言,我们可以说 pandas 文本数据有两种数据类型,即 object 和 StringDtype。

在旧版本的 pandas(1.0)中,只提供 object dtype,在新版本的 pandas 中,建议使用 StringDtype 来存储所有文本数据。为了克服使用 object dtype 的一些缺点,在 pandas 1.0 版本中引入了 StringDtype。但是,我们仍然可以对文本数据同时使用 object 和 StringDtype。

让我们举个例子,在其中使用文本数据创建一个 DataFrame,并查看 pandas 文本数据中输出的默认 dtype。

Object dtype

使用文本数据创建 pandas DataFrame 并验证数据的 dtype。

示例

dict_ = {'A':['a','Aa'],'B':['b','Bb']} # Declaring a Dictionary

df = pd.DataFrame(dict_) # creating a DataFrame using Dictionary

print(df['A']) # printing column A values
print() # giving space between each output
print(df['B']) # Printing column B values

解释

在上面的代码中,使用字符串数据创建了一个字典并将其分配给 dict_ 变量,通过使用此 dict_ 我们创建了一个 Pandas DataFrame。此 DataFrame 有 2 列和 2 行,并且此 DataFrame 中存在的所有数据都是字符串数据。

从上面代码的最后 3 行显示了数据的每一列,在该输出中,我们可以看到我们数据的 dtype。让我们在下面验证输出。

输出

0     a
1    Aa
Name: A, dtype: object

0      b
1     Bb
Name: B, dtype: object

以上输出表示 DataFrame 中的每一列 A 和列 B 的值,用行空格隔开。在这里我们可以看到每一列的 dtype 默认表示 object。要定义 StringDtype,我们需要明确地声明它。

String dtype

要定义 String dtype,我们可以使用 dtype 参数并分配字符串或 StringDtype 参数。让我们在下面看一些例子。

示例

list_ = ['python','sample', 'string']
ds = pd.Series(list_, dtype='string')
print(ds)

解释

在这里,我们使用带有字符串列表的 pandas series 方法定义了一个 pandas Series。我们将字符串参数传递给参数 dtype,它会将默认的 object dtype 更改为 string。

输出

0     python
1     sample
2     string
dtype: string

以上代码块是 series 数据的输出,这里数据的 dtype 是 string。我们也可以使用 pd.StringDtype() 将 dtype 定义为 string。让我们再举一个例子。

示例

data = ['john','dev','philip'] # creating a list
ds = pd.Series(data, dtype= pd.StringDtype()) # Series creation
ds

对于此示例,我们也使用带有字符串列表的 pandas series 并将 pd.StringDtype 参数定义为参数 dtype。

输出

0    John
1    Dev
2    Philip
dtype: string

上面代码块显示了将 pd.StringDtype 参数定义为 dtype 参数的输出。

更新于: 2021-11-18

366 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告