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 参数的输出。