python - 数据框使用 DatetimeIndex 选择数据

标签 python pandas datetime dataframe indexing

我有一个如下所示的数据框:

import numpy as np
import pandas as pd    

data = {'datetime' : ['2009-07-24 02:00:00', '2009-07-24 03:00:00','2009-07-24 04:00:00'],
     'value1' : ['a', np.nan ,'c'],
     'value2' : ['d','e','f']}
df = pd.DataFrame(data)
df = df.set_index(pd.DatetimeIndex(df['datetime']))
missing = df.loc[:, df.columns != ('datetime')]
 

以上数据只是一个示例。但是可以说我在更大的数据中有很多缺失值。我想选择“value1”列中所有缺失值的数据。

missing_index = df[df['value1'].isnull()].index

这段代码会让我得到所有缺失值的索引,但我想要它们的实际行,在本例中是第二行。

所以,我试过了,

df[missing_index]

但是我有一个错误说

KeyError: "DatetimeIndex(['2009-07-24 03:00:00'], dtype='datetime64[ns]', name='datetime', freq=None) not in index"

最佳答案

错误来自于 df[<something>]用于获取列。当您调用 df[missing_index]它试图找到 missing_index在列中(这也是一个索引)。

正如@panktijk 在他的评论中指出的那样,做您想做的事情的最简单方法是:

df[df['value1'].isnull()]

但是,如果出于某种原因(也许你想操纵它们)你想按照你的方式首先获取索引,然后使用它们来拉取你的子数据框,你可以执行以下操作:

df.loc[missing_index]

关于python - 数据框使用 DatetimeIndex 选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728525/

相关文章:

列表和子列表的Python算法

python - 如何从 pandas 数据框中使用正则表达式删除答案中的点号 : '(i)' , '(ii)' 、 '(iii)' ?

python - pd.pivot_table 当列是日期时

android - 获取当前系统时间

Javascript Intl.DateTimeFormat hours12 在 Chrome 上给出奇怪的输出

python - Dijkstra 的算法问题和 python 中的关键错误

python - 如何将一个 QtWidget(例如 QTreeWidget)的样式(表)应用到另一个小部件(例如 QLabel)?

Python - 排除两个日期之间的周末

python - python(pycrypto) 和 nodejs(crypto) 之间的加密 (aes-128-cbc) 不匹配

python - 当相邻列包含特定值时,如何从数据框中为每个 ID 解析数据?