目录
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 日之间的所有数据。