【Python】pandas将数据缺失值丢弃与pandas筛选特定日期的数值

目录

pandas将数据缺失值丢弃

pandas筛选特定日期的数值


pandas将数据缺失值丢弃

在 Pandas 中,可以使用 dropna() 函数来删除缺失值。该函数默认会删除包含任何缺失值的行。下面是一些示例:

  • 删除所有包含缺失值的行
import pandas as pd

# 创建一个包含缺失值的 DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [None, 6, 7, 8]})

# 删除所有包含缺失值的行
df = df.dropna()

print(df)

输出:

     A    B
1  2.0  6.0
  • 只删除某一列包含缺失值的行
import pandas as pd

# 创建一个包含缺失值的 DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [5, None, 7, 8]})

# 删除列 B 中包含缺失值的行
df = df.dropna(subset=['B'])

print(df)

输出:

     A    B
0  1.0  5.0
2  NaN  7.0
3  4.0  8.0

需要注意的是,dropna() 的默认参数中 axis=0 表示删除行,how='any' 表示只要包含任何缺失值就删除,thresh=None 表示不限制删除行的数量。同时,还可以使用 inplace=True 将删除操作应用于原始 DataFrame,而不返回一个新的 DataFrame 对象。例如:df.dropna(inplace=True)

pandas筛选特定日期的数值

在 Pandas 中,可以使用日期时间索引来筛选特定日期的数据。首先需要将 DataFrame 中的日期列转换为日期时间类型,并设置为索引,然后就可以使用日期时间索引来筛选数据了。下面是一些示例:

  • 将日期列转换为日期时间类型
import pandas as pd

# 创建一个包含日期列和数值列的 DataFrame
df = pd.DataFrame({'date': ['2022-01-01', '2022-01-02', '2022-01-03'],
                   'value': [10, 20, 30]})

# 将日期列转换为日期时间类型
df['date'] = pd.to_datetime(df['date'])

# 将日期列设置为索引
df = df.set_index('date')

print(df)

输出:

            value
date             
2022-01-01     10
2022-01-02     20
2022-01-03     30
  • 使用日期时间索引筛选特定日期的数据
# 筛选 2022 年 1 月 2 日的数据
df_filtered = df.loc['2022-01-02']

print(df_filtered)

输出:

value    20
Name: 2022-01-02 00:00:00, dtype: int64

需要注意的是,使用日期时间索引时,需要确保 DataFrame 的索引为日期时间类型。同时,也可以使用 loc[] 筛选某个时间范围内的数据,例如:df_filtered = df.loc['2022-01-01':'2022-01-02'],这将返回 2022 年 1 月 1 日至 2022 年 1 月 2 日之间的所有数据。

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/130889722