【问题标题】:how does Pandas dataframe index differ from other columns?Pandas 数据框索引与其他列有何不同?
【发布时间】:2020-01-28 02:02:14
【问题描述】:

我正在尝试使用 Pandas 来利用 dataframe.interpolate 来填补时间序列中的空白,但在设置该函数所需的索引时遇到问题。

它提出了一个更普遍的问题:Pandas 数据框由许多组成,每个列由一个dtype 组成。还有一个行索引,它在我看来非常像一列。

那么...数据框(行)索引和所有其他列之间有什么区别?例如,我可能认为要求所有索引条目都是唯一的,就像 SQL 数据库键一样,但似乎情况并非如此?那么,与非索引列相比,行索引有什么特别之处?

【问题讨论】:

  • 你能提供你的代码吗?不,索引不需要是唯一的

标签: pandas dataframe indexing


【解决方案1】:

Index 允许 loc 命令调用指定的行。如果有重复,您可以调用所有重复项。如果要指定一行,请使用分层索引或 iloc(数字位置)。

索引中的值重复非常重要,因为它有助于分层索引。这在 pandas 中非常有用

因此,索引是您指定为索引的行。删除列(通过将其分配给索引)、操作数据框并将索引重新作为列重新引入也非常有用。

Interpolate 是一个非常酷的命令,但从内存中它只适用于列。如果要插入索引,

df.reset_index(inplace=True)

然后插入该新列,然后

 df.set_index('column interpolated', inplace=True)

对于时间序列,请考虑 roll 函数。您可以使用它来移动丢失的数据。

【讨论】:

  • Michael,我有一个双列表形式的时间序列,其中第一列是时间戳,第二列是该时间戳的值;时间戳是唯一的,但缺少一些值。我正在构建一个数据框,其中索引来自时间戳,单个非索引列是值。我想要做的是使用带有方法=“时间”的“插值”找到缺失值,我理解这是使用 DatetimeIndex 进行“加权线性插值”。
  • 对于这个插值.. 你可以考虑一个 apply 或 lambda x 风格的函数。从我对熊猫插值的记忆来看,这似乎有点先进
  • 您可能会考虑放弃长格式...很多可能性
  • 我认为我对 Pandas“插值”的问题是它不允许我控制要插值的列,以及用作插值的横坐标的列。因此,我转而使用 ```scipy.interpolate` 进行插值,它提供了这些控件并提供了多种插值。和/但是,对于最初的问题,事实证明线性插值在填补空白方面是最准确的。哦,好吧……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 2021-02-07
  • 1970-01-01
  • 2021-08-24
相关资源
最近更新 更多