Python 和 Pandas : Re-indexing after selecing entries

标签 python pandas

在我的初始数据中,有一些有问题的数据,我不想理会它们,所以我这样做 df = df[(df['direction'] < 100) & (df['speed'] < 400)] .

但是,当我尝试访问像 df.ix[100] 这样的单个条目时,数据可能是in-accessible ,因为它在条件选择中被淘汰。所以我想重新索引数据,我该怎么做?

玩了一段时间后,我意识到最初的查询 df = df[(df['direction'] < 100) & (df['speed'] < 400)]似乎不是创建新变量而是原始数据的 View ,这让我更加困惑。

那么,查询后如何重新索引数据呢?或者我应该drop相反?

最佳答案

如果我正确理解您的问题,您可以使用 .reset_index(drop=True) 将索引重置为默认连续整数。

import pandas as pd
import numpy as np

# sample data
# ====================================
np.random.seed(0)
df = pd.DataFrame(np.random.randn(5,2), columns=list('AB'))
df

        A       B
0  1.7641  0.4002
1  0.9787  2.2409
2  1.8676 -0.9773
3  0.9501 -0.1514
4 -0.1032  0.4106


# ===================================
df1 = df[df['B']>0]  # cannot access df1.ix[2]

        A       B
0  1.7641  0.4002
1  0.9787  2.2409
4 -0.1032  0.4106

df2 = df[df['B']>0].reset_index(drop=True)  # df2.ix[2] works fine

        A       B
0  1.7641  0.4002
1  0.9787  2.2409
2 -0.1032  0.4106

关于Python 和 Pandas : Re-indexing after selecing entries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31912968/

相关文章:

python - 以 JSON 格式获取 Tweepy 搜索结果

python - 基于其他列中的数据的列表中单词的频率

python - 在开发和安装时查找 Assets 文件(C++/Python,主要在 Linux 上)

python - 如何将虚拟列连接到主表?

python - 从字符串列表创建 Pandas 数据框

python - Pandas 中的数据处理

python - 如何使用 python 从我的控制台捕获所有内容并通过电子邮件发送?

python - 如何为数据帧的每一行应用一个函数,该函数检查嵌入字典的键

python - 删除数据框中许多列具有相同值的行

python - 如何在日期python中转换YYMMDDHH时间戳