微信截图_20240304163442.png

下面是一组常见的 Python Pandas 面试问题和答案

1) 定义 Pandas/Python pandas 是什么?

Pandas 被定义为一个在 Python 中提供高性能数据操作的开源库。Pandas 的名称来源于 Panel Data,这意味着多维数据的计量经济学。它可以用于在 Python 中进行数据分析,由 Wes McKinney 于 2008 年开发。它可以执行数据的加载、操作、准备、建模和分析这五个重要步骤,无论数据的来源如何。

2) 列举 Pandas 中的不同类型的数据结构?

Pandas 提供两种数据结构,由 Pandas 库支持,即 SeriesDataFrames。这两种数据结构都建立在 NumPy 之上。

Series 是 Pandas 中的一维数据结构,而 DataFrame 是 Pandas 中的二维数据结构。

3) 定义 Pandas 中的 Series?

Series 被定义为一维数组,可以存储各种数据类型。Series 的行标签被称为 index。通过使用 'series' 方法,我们可以轻松地将列表、元组和字典转换为 Series。Series 不能包含多列。

4) 我们如何从 Series 计算标准差?

Pandas 中的 std() 被定义为用于计算给定一组数字、DataFrame、列和行的标准差的函数。

Series.std(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)

5) 在 Pandas 中定义 DataFrame 是什么?

DataFrame 是 Pandas 中广泛使用的数据结构,与具有标记轴(行和列)的二维数组一起工作。DataFrame 被定义为存储数据的标准方式,具有两个不同的索引,即行索引和列索引。它具有以下属性:

  • 列可以是异构类型,如 int 和 bool。
  • 它可以被视为 Series 结构的字典,其中行和列都有索引。在列的情况下用 "columns" 表示,在行的情况下用 "index" 表示。

6) Pandas 库的主要特性是什么?

Pandas 库的主要特性包括:

  • 内存效率
  • 数据对齐
  • 重塑
  • 合并和连接
  • 时间序列

7) 解释 Pandas 中的 Reindexing?

Reindexing 用于将 DataFrame 调整为具有新索引的新状态,并可选择使用填充逻辑。它在前一个索引中不存在的位置放置 NA/NaN。除非新索引生成与当前索引相当的对象,并且复制的值为 False,否则它会返回一个新对象。它用于更改 DataFrame 的行和列的索引。

8) Pandas 库工具中用于创建散点图矩阵的名称是什么?

Scatter_matrix

9) 在 Pandas 中,DataFrame 可以通过哪些方式创建?

我们可以使用以下方式创建 DataFrame:

  • 列表
  • 字典的 ndarray

示例-1:使用列表创建 DataFrame:

import pandas as pd    
# a list of strings    
a = ['Python', 'Pandas']    
# Calling DataFrame constructor on list    
info = pd.DataFrame(a)    
print(info)    

输出:

    0
0   Python
1   Pandas

示例-2:使用字典的 ndarray 创建 DataFrame:

import pandas as pd    
info = {'ID' :[101, 102, 103],'Department' :['B.Sc','B.Tech','M.Tech',]}    
info = pd.DataFrame(info)    
print (info)   

输出:

       ID      Department
0      101        B.Sc
1      102        B.Tech
2      103        M.Tech

10) 在 Pandas 中,什么是分类数据?

分类数据在 Pandas 中被定义为对应于统计学中的分类变量的 Pandas 数据类型。分类变量通常用于具有有限且通常固定数量的可能值。例如:性别、国家附属关系、血型、社会阶级、观察时间或通过 Likert 刻度进行评分。分类数据的所有值都是类别或 np.nan。

此数据类型在以下情况下很有用:

  • 用于仅包含少量不同值的字符串变量。如果我们要节省一些内存,可以将字符串变量转换为分类变量。
  • 用于变量的字典顺序与逻辑顺序不同的情况(“one”、“two”、“three”)。通过将其转换为分类变量并在类别上指定顺序,使用逻辑顺序而不是字典顺序进行排序和 min/max 处理是有用的。
  • 用作对其他 Python 库的信号,因为此列应被视为分类变量。

11) 如何从字典中创建 Pandas Series?

Series 被定义为一维数组,可以存储各种数据类型。

我们可以从字典创建 Pandas Series:

从字典创建 Series:

我们还可以从字典创建 Series。如果将字典对象作为输入传递且未指定索引,则将以排序顺序采用字典键以构建索引。

import pandas as pd    
import numpy as np    
info = {'x' : 0., 'y' : 1., 'z' : 2.}    
a = pd.Series(info)    
print (a)    

输出:

x     0.0
y     1.0
z     2.0
dtype: float64

12) 如何在 Pandas 中创建 Series 的副本?

我们可以使用以下语法创建 Series 的副本:

pandas.Series.copy Series.copy(deep=True)

以上语句生成一个深复制,其中包括数据和索引的副本。如果将深度设置为 False,它既不会复制索引也不会复制数据。

注意:如果设置 deep=True,则会复制数据,但不会递归复制实际的 Python 对象,只会复制对对象的引用。

13) 如何在 Pandas 中创建空 DataFrame?

DataFrame 是 Pandas 中广泛使用的数据结构,与具有标签轴(行和列)的二维数组一起工作。它被定义为一种存储数据的标准方式,具有两个不同的索引,即行索引和列索引。

创建一个空 DataFrame:

以下代码演示了如何在 Pandas 中创建一个空的 DataFrame:

# importing the pandas library    
import pandas as pd    
info = pd.DataFrame()    
print (info)    

输出:

Empty DataFrame
Columns: []
Index: []

14) 如何向 Pandas DataFrame 添加列?

我们可以向现有的 DataFrame 添加任何新列。以下代码演示了如何向现有的 DataFrame 添加新列:

# importing the pandas library    
import pandas as pd      
info = {'one' : pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e']),    
             'two' : pd.Series([1, 2, 3, 4, 5, 6], index=['a', 'b', 'c', 'd', 'e', 'f'])}    
   
info = pd.DataFrame(info)    
    
# Add a new column to an existing DataFrame object     
    
print ("Add new column by passing series")    
info['three']=pd.Series([20,40,60],index=['a','b','c'])    
print (info)    
print ("Add new column using existing DataFrame columns")    
info['four']=info['one']+info['three']    
print (info)    

输出:

Add new column by passing series
      one     two      three
a     1.0      1        20.0
b     2.0      2        40.0
c     3.0      3        60.0
d     4.0      4        NaN
e     5.0      5        NaN
f     NaN      6        NaN

Add new column using existing DataFrame columns
       one      two       three      four
a      1.0       1         20.0      21.0
b      2.0       2         40.0      42.0
c      3.0       3         60.0      63.0
d      4.0       4         NaN      NaN
e      5.0       5         NaN      NaN
f      NaN       6        NaN      NaN

15) 如何在 Pandas DataFrame 中添加索引、行或列?

添加索引到 DataFrame

如果要在创建 DataFrame 时添加索引,请在调用 DataFrame.to_excel() 之前使用 set_index() 方法。

添加行到 DataFrame

我们可以使用 .loc, ilocix 结合 DataFrame 上的 iterrows() 调用来迭代 DataFrame 的行。

  • loc 基本上用于索引的标签。可以理解为如果我们在 loc[4] 中插入,这意味着我们正在查找那些具有标签 4 的 DataFrame 的值。
  • iloc 基本上用于索引的位置。可以理解为如果我们在 iloc[4] 中插入,这意味着我们正在查找 DataFrame 中位置为 '4' 的值。
  • ix 是一个复杂的情况,因为如果索引是基于整数的,我们传递一个标签给 ixix[4] 的意思是我们正在查找 DataFrame 中具有标签 4 的那些值。但是,如果索引不仅基于整数,而是基于字符串,ix 将像 iloc 一样处理位置。

添加列到 DataFrame

如果要向 DataFrame 添加列,可以通过使用 loc 或 iloc 沿用与添加索引到 DataFrame 相同的过程。

16) 如何从 Pandas 数据帧中删除索引、行或列?

删除 DataFrame 中的索引

如果要从 DataFrame 中删除索引,则必须在 DataFrame 中创建它时指定目标文件名。

  • 重置 DataFrame 的索引。
  • 执行 del df.index.name 以删除索引名称。
  • 通过重置索引并从索引列中删除重复值来删除重复的索引值。
  • 通过重置索引并指定要从 DataFrame 中删除的行来删除索引与行。

从 DataFrame 中删除列

可以使用 drop() 方法从 DataFrame 中删除列。

传递给 drop() 方法的 axis 参数是 0,如果它指示行,是 1,如果它删除列。

可以将 inplace 参数传递给 True,以在不重新分配 DataFrame 的情况下删除列。

还可以使用 drop_duplicates() 方法从列中删除重复的值。

从 DataFrame 中删除行

通过使用 df.drop_duplicates(),我们可以从 DataFrame 中删除重复的行。

可以使用 drop() 方法指定我们想要从 DataFrame 中删除的行的索引。

17) 如何重命名 Pandas DataFrame 的索引或列?

可以使用 .rename 方法为 DataFrame 的列或索引值赋予不同的值。

18) 如何迭代 Pandas DataFrame?

可以使用 for 循环结合 DataFrame 上的 iterrows() 调用来迭代 DataFrame 的行。

19) 如何获取系列 A 中不在系列 B 中的项?

可以使用 isin() 方法从 p1 中删除在 p2 中存在的项。

import pandas as pd  
p1 = pd.Series([2, 4, 6, 8, 10])  
p2 = pd.Series([8, 10, 12, 14, 16])  
p1[~p1.isin(p2)]  

解决方案

0    2
1    4
2    6
dtype: int64

20) 如何获取系列 A 和系列 B 中都不常见的项?

可以使用以下示例获取 p1p2 中都不常见的项:

import pandas as pd  
import numpy as np  
p1 = pd.Series([2, 4, 6, 8, 10])  
p2 = pd.Series([8, 10, 12, 14, 16])  
p1[~p1.isin(p2)]  
p_u = pd.Series(np.union1d(p1, p2))  # union  
p_i = pd.Series(np.intersect1d(p1, p2))  # intersect  
p_u[~p_u.isin(p_i)]  

输出:

0     2
1     4
2     6
5    12
6    14
7    16
dtype: int64

21) 如何获取数值系列的最小值、第 25 个百分位数、中位数、第 75 个百分位数和最大值?

可以使用以下示例计算 p 的最小值、第 25 个百分位数、中位数、第 75 个百分位数和最大值:

import pandas as pd  
import numpy as np  
p = pd.Series(np.random.normal(14, 6, 22))  
state = np.random.RandomState(120)  
p = pd.Series(state.normal(14, 6, 22))  
np.percentile(p, q=[0, 25, 50, 75, 100])  

输出:

array([ 4.61498692, 12.15572753, 14.67780756, 17.58054104, 33.24975515])

22) 如何获取系列的唯一项的频率计数?

可以使用以下示例计算系列 p 的每个唯一值的频率计数:

import pandas as pd  
import numpy as np  
p= pd.Series(np.take(list('pqrstu'), np.random.randint(6, size=17)))  
p = pd.Series(np.take(list('pqrstu'), np.random.randint(6, size=17)))  
p.value_counts()  

输出:

s    4
r    4
q    3
p    3
u    3

23) 如何将 NumPy 数组转换为给定形状的 DataFrame?

可以使用以下示例将系列 p 重塑为具有 6 行和 2 列的 DataFrame:

import pandas as pd  
import numpy as np  
p = pd.Series(np.random.randint(1, 7, 35))  
# Input  
p = pd.Series(np.random.randint(1, 7, 35))  
info = pd.DataFrame(p.values.reshape(7,5))  
print(info)  

输出:

0  1  2  3  4
0  3  2  5  5  1
1  3  2  5  5  5
2  1  3  1  2  6
3  1  1  1  2  2
4  3  5  3  3  3
5  2  5  3  6  4
6  3  6  6  6  5

24) 如何将 Series 转换为 DataFrame?

Pandas Series.to_frame() 函数用于将 series 对象转换为 DataFrame。

s = pd.Series(["a", "b", "c"],    
name="vals")    
s.to_frame()   

输出:

       vals
0          a
1          b
2          c

25) 什么是 Pandas NumPy 数组?

Numerical Python(NumPy)被定义为 Python 包,用于执行各种数值计算和处理多维和单维数组元素。Pandas 在其内部使用 NumPy 数组来实现它的数据结构(例如 Series 和 DataFrame)。

26) 如何在 Pandas DataFrame 中更改列的顺序?

我们可以使用以下示例更改 Pandas DataFrame 的列顺序:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame(np.random.randn(5, 4), columns=['col1', 'col2', 'col3', 'col4'])
print("原始 DataFrame:")
print(info)

# 要更改的列的列表
new_order = ['col2', 'col1', 'col4', 'col3']

# 重新排列 DataFrame
info = info[new_order]
print("\n重新排列后的 DataFrame:")
print(info)

输出:

原始 DataFrame:
       col1      col2      col3      col4
0 -0.237755 -0.755873  0.035141 -1.708418
1 -0.074570 -0.453666 -0.432630 -1.236938
2  1.477544 -1.162035  1.424856 -0.180086
3  1.398738  1.071527 -0.235517  1.223251
4 -1.565943 -1.314215  0.782585 -0.191651

重新排列后的 DataFrame:
       col2      col1      col4      col3
0 -0.755873 -0.237755 -1.708418  0.035141
1 -0.453666 -0.074570 -1.236938 -0.432630
2 -1.162035  1.477544 -0.180086  1.424856
3  1.071527  1.398738  1.223251 -0.235517
4 -1.314215 -1.565943 -0.191651  0.782585

27) 在 Pandas DataFrame 中如何获取前 n 行?

可以使用以下示例获取 Pandas DataFrame 的前 n 行:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame(np.random.randn(10, 4), columns=['col1', 'col2', 'col3', 'col4'])
print("原始 DataFrame:")
print(info)

# 获取前 n 行
n = 3
result = info.head(n)
print(f"\n前 {n} 行:")
print(result)

输出:

原始 DataFrame:
       col1      col2      col3      col4
0 -0.069236 -0.674580  0.939619 -1.445290
1 -0.689371  1.161244  0.617127  0.856165
2  0.823134  0.116978  0.177511  0.392932
3 -0.202230  0.080075 -1.005409 -0.103331
4  0.754072 -0.099828 -0.513273 -0.732763
5 -1.274373 -0.331692  1.013054  0.249213
6 -0.003059 -1.538998 -1.329567  0.938980
7 -0.666894 -0.044256 -0.407947 -1.293412
8 -1.381406 -0.321672  1.282383 -0.725497
9 -1.743365  0.585083  0.687354 -0.394758

前 3 行:
       col1      col2      col3      col4
0 -0.069236 -0.674580  0.939619 -1.445290
1 -0.689371  1.161244  0.617127  0.856165
2  0.823134  0.116978  0.177511  0.392932

28) 如何获取 Pandas DataFrame 的最后 n 行?

可以使用以下示例获取 Pandas DataFrame 的最后 n 行:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame(np.random.randn(10, 4), columns=['col1', 'col2', 'col3', 'col4'])
print("原始 DataFrame:")
print(info)

# 获取最后 n 行
n = 3
result = info.tail(n)
print(f"\n最后 {n} 行:")
print(result)

输出:

原始 DataFrame:
       col1      col2      col3      col4
0  0.005501 -0.523849 -0.514100  1.086686
1  0.231198  0.333324  1.380351 -1.412217
2 -0.319754  1.733845  0.354401 -0.301098
3  1.360811 -1.501514  1.544683 -0.410249
4  0.856466  1.327259 -0.916127  0.458564
5  0.874271  0.059958 -0.318215  0.047050
6  0.696508 -0.490610 -0.527407 -0.103225
7  0.116837  0.724458  1.482878  0.890915
8 -1.494186  1.177226 -0.974772  0.397696
9  0.175062 -0.081891 -0.387344  0.531259

最后 3 行:
       col1      col2      col3      col4
7  0.116837  0.724458  1.482878  0.890915
8 -1.494186  1.177226 -0.974772  0.397696
9  0.175062 -0.081891 -0.387344  0.531259

29) 在 Pandas DataFrame 中如何检查是否存在任何空值?

可以使用以下示例检查 Pandas DataFrame 中是否存在任何空值:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6], 'C': [7, 8, 9]})
print("原始 DataFrame:")
print(info)

# 检查是否存在任何空值
result = info.isnull().values.any()
print(f"\n是否存在任何空值: {result}")

输出:

原始 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  NaN  8
2  NaN  6.0  9

是否存在任何空值: True

30) 如何在 Pandas DataFrame 中将缺失值替换为平均值?

可以使用以下示例在 Pandas DataFrame 中将缺失值替换为平均值:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6], 'C': [7, 8, 9]})
print("原始 DataFrame:")
print(info)

# 将缺失值替换为平均值
info.fillna(info.mean(), inplace=True)
print("\n替换缺失值后的 DataFrame:")
print(info)

输出:

原始 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  NaN  8
2  NaN  6.0  9

替换缺失值后的 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  5.0  8
2  1.5  6.0  9

这里使用 fillna() 方法,将缺失值替换为平均值。

31) 如何删除 Pandas DataFrame 中包含缺失值的行?

可以使用以下示例删除 Pandas DataFrame 中包含缺失值的行:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6], 'C': [7, 8, 9]})
print("原始 DataFrame:")
print(info)

# 删除包含缺失值的行
info.dropna(inplace=True)
print("\n删除缺失值后的 DataFrame:")
print(info)

输出:

原始 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  NaN  8
2  NaN  6.0  9

删除缺失值后的 DataFrame:
     A    B  C
0  1.0  4.0  7

32) 如何计算 Pandas DataFrame 中每列的缺失值总数?

可以使用以下示例计算 Pandas DataFrame 中每列的缺失值总数:

# 导入 pandas 库
import pandas as pd
import numpy as np

info = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6], 'C': [7, 8, 9]})
print("原始 DataFrame:")
print(info)

# 计算每列的缺失值总数
missing_values = info.isnull().sum()
print("\n每列的缺失值总数:")
print(missing_values)

输出:

原始 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  NaN  8
2  NaN  6.0  9

每列的缺失值总数:
A    1
B    1
C    0
dtype: int64

33) 如何将 Pandas DataFrame 中的字符串列转换为小写?

可以使用以下示例将 Pandas DataFrame 中的字符串列转换为小写:

# 导入 pandas 库
import pandas as pd

data = {'Name': ['John', 'Doe', 'Alice'],
        'City': ['New York', 'Chicago', 'Los Angeles']}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将字符串列转换为小写
df['Name'] = df['Name'].str.lower()
df['City'] = df['City'].str.lower()

print("\n转换为小写后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
    Name           City
0   John       New York
1    Doe        Chicago
2  Alice  Los Angeles

转换为小写后的 DataFrame:
    Name           City
0   john       new york
1    doe        chicago
2  alice  los angeles

34) 如何将 Pandas DataFrame 中的字符串列转换为大写?

可以使用以下示例将 Pandas DataFrame 中的字符串列转换为大写:

# 导入 pandas 库
import pandas as pd

data = {'Name': ['John', 'Doe', 'Alice'],
        'City': ['New York', 'Chicago', 'Los Angeles']}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将字符串列转换为大写
df['Name'] = df['Name'].str.upper()
df['City'] = df['City'].str.upper()

print("\n转换为大写后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
    Name           City
0   John       New York
1    Doe        Chicago
2  Alice  Los Angeles

转换为大写后的 DataFrame:
    Name           City
0   JOHN       NEW YORK
1    DOE        CHICAGO
2  ALICE  LOS ANGELES

35) 如何将 Pandas DataFrame 中的字符串列转换为标题格式?

可以使用以下示例将 Pandas DataFrame 中的字符串列转换为标题格式:

# 导入 pandas 库
import pandas as pd

data = {'Name': ['john', 'doe', 'alice'],
        'City': ['new york', 'chicago', 'los angeles']}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将字符串列转换为标题格式
df['Name'] = df['Name'].str.title()
df['City'] = df['City'].str.title()

print("\n转换为标题格式后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
    Name           City
0   john       new york
1    doe        chicago
2  alice  los angeles

转换为标题格式后的 DataFrame:
    Name           City
0   John       New York
1    Doe        Chicago
2  Alice  Los Angeles

36) 如何将 Pandas DataFrame 中的字符串列转换为标准格式?

可以使用以下示例将 Pandas DataFrame 中的字符串列转换为标准格式(去除前导和尾随空格,并将多个空格缩减为一个):

# 导入 pandas 库
import pandas as pd

data = {'Name': ['  John  ', 'Doe  ', '  Alice'],
        'City': ['New  York', 'Chicago', ' Los Angeles  ']}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将字符串列转换为标准格式
df['Name'] = df['Name'].str.strip()
df['City'] = df['City'].str.strip()
df['City'] = df['City'].str.replace(r'\s+', ' ', regex=True)

print("\n转换为标准格式后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
      Name            City
0    John       New  York
1      Doe         Chicago
2    Alice    Los Angeles

转换为标准格式后的 DataFrame:
    Name           City
0   John       New York
1    Doe        Chicago
2  Alice  Los Angeles

这里使用了 strip() 方法去除前导和尾随空格,以及 replace() 方法将多个空格缩减为一个。

37) 如何在 Pandas DataFrame 中更改数据类型?

可以使用以下示例更改 Pandas DataFrame 中列的数据类型:

# 导入 pandas 库
import pandas as pd

data = {'Column1': [1, 2, 3, 4, 5],
        'Column2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 更改 Column1 的数据类型为浮点型
df['Column1'] = df['Column1'].astype(float)

print("\n更改数据类型后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
   Column1 Column2
0        1       A
1        2       B
2        3       C
3        4       D
4        5       E

更改数据类型后的 DataFrame:
   Column1 Column2
0      1.0       A
1      2.0       B
2      3.0       C
3      4.0       D
4      5.0       E

这里使用 astype() 方法将 Column1 的数据类型更改为浮点型。

38) 如何在 Pandas DataFrame 中将日期字符串转换为日期时间对象?

可以使用以下示例将 Pandas DataFrame 中的日期字符串转换为日期时间对象:

# 导入 pandas 库
import pandas as pd

data = {'Date': ['2022-01-01', '2022-02-01', '2022-03-01'],
        'Value': [10, 20, 30]}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将 Date 列的数据类型更改为日期时间对象
df['Date'] = pd.to_datetime(df['Date'])

print("\n转换为日期时间对象后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
         Date  Value
0  2022-01-01     10
1  2022-02-01     20
2  2022-03-01     30

转换为日期时间对象后的 DataFrame:
        Date  Value
0 2022-01-01     10
1 2022-02-01     20
2 2022-03-01     30

这里使用 pd.to_datetime() 方法将 Date 列的数据类型更改为日期时间对象。

39) 如何在 Pandas DataFrame 中提取日期时间信息?

可以使用以下示例在 Pandas DataFrame 中提取日期时间信息:

# 导入 pandas 库
import pandas as pd

data = {'Date': ['2022-01-01', '2022-02-01', '2022-03-01'],
        'Value': [10, 20, 30]}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将 Date 列的数据类型更改为日期时间对象
df['Date'] = pd.to_datetime(df['Date'])

# 提取日期时间信息
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['Day'] = df['Date'].dt.day

print("\n提取日期时间信息后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
         Date  Value
0  2022-01-01     10
1  2022-02-01     20
2  2022-03-01     30

提取日期时间信息后的 DataFrame:
        Date  Value  Year  Month  Day
0 2022-01-01     10  2022      1    1
1 2022-02-01     20  2022      2    1
2 2022-03-01     30  2022      3    1

这里使用 dt.yeardt.monthdt.day 属性提取日期时间信息。

40) 如何在 Pandas DataFrame 中计算两个日期之间的天数差异?

可以使用以下示例在 Pandas DataFrame 中计算两个日期之间的天数差异:

# 导入 pandas 库
import pandas as pd

data = {'Start_Date': ['2022-01-01', '2022-02-01', '2022-03-01'],
        'End_Date': ['2022-01-10', '2022-02-20', '2022-03-31']}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 将 Start_Date 和 End_Date 列的数据类型更改为日期时间对象
df['Start_Date'] = pd.to_datetime(df['Start_Date'])
df['End_Date'] = pd.to_datetime(df['End_Date'])

# 计算两个日期之间的天数差异
df['Days_Difference'] = (df['End_Date'] - df['Start_Date']).dt.days

print("\n计算天数差异后的 DataFrame:")
print(df)

输出:

原始 DataFrame:
  Start_Date   End_Date
0 2022-01-01 2022-01-10
1 2022-02-01 2022-02-20
2 2022-03-01 2022-03-31

计算天数差异后的 DataFrame:
  Start_Date   End_Date  Days_Difference
0 2022-01-01 2022-01-10                9
1 2022-02-01 2022-02-20               19
2 2022-03-01 2022-03-31               30

这里使用 (df['End_Date'] - df['Start_Date']).dt.days 计算两个日期之间的天数差异。

以上是关于 Pandas 常见操作的一些示例,希望对你有帮助。如果有其他问题或需要更多示例,请随时问我!

标签: Pandas, Pandas教程, Pandas库, Pandas基础, Pandas学习, Pandas使用, Pandas指南, Pandas入门教程, Pandas模块, Pandas数据库, Pandas实战教程, Pandas用法总结, Pandas文档