python - pandas - 如何添加带索引的行并比较数据的差异?

标签 python

我从 execl(csv) 带来了数据,大约有 300000 行 * 1 列,我用 db.plot() 绘制了 ----- 这是一个时间序列数据

我正在尝试删除(丢弃)高于 0.006 的数据,然后

我想比较数据之间的差异(一步一步:相邻的数据),如果差异更大0.00001,我也想删除这些数据。

然后,我将只剩下差异非常非常小的数据(几乎为 0,平坦的斜率)。

我是 python 的初学者,我尽了最大努力,但我不知道我的代码有什么问题:

import pandas as pd

excel_df = pd.read_csv('data.csv', header=None)

excel_df.plot()

bool_idx = excel_df < 0.006

valid_data = excel_df[bool_idx]

true_data = valid_data.dropna()

# print(true_data)
# print(valid_data)

ax1 = valid_data.plot()

ax1.set_ylim(-0.005, 0.045)

ax1.plot()

print(true_data)

al2 = true_data.diff()

# print(al2)

number = 0

for true_data in ture data:

    number = number + 1

    if true_data.diff() < 0.00001:

        true_data.drop()

print(true_data)

最佳答案

尝试在您的数据集上运行它。

#!/usr/bin/env python3
# coding: utf-8

# In[1]:


import pandas as pd

excel_df = pd.read_csv('data.csv', header=None)

x=excel_df.plot()
# x

bool_idx = excel_df < 0.006
# bool_idx

valid_data = excel_df[bool_idx]
# valid_data

true_data = valid_data.dropna()
# true_data

ax1 = valid_data.plot()

ax1.set_ylim(-0.005, 0.045)
# ax1


al2 = true_data.diff()
# al2

number = 0

for (true_data_diff_val,rid) in zip(true_data.diff()[0],true_data.diff()[0].index):
#     print(number,true_data_diff_val)
#     print(rid)
    if true_data_diff_val < 0.00001 and rid != 0:
        true_data=true_data.drop(int(rid),0)
        print(rid)
print(true_data)

据我了解,您的查询是获取行/元组 ID。循环内的 if 条件,以便将其从另一个数据帧中删除。我所知道的最简单的方法是使用 zip 函数来使其与数据并行迭代。

此外,您还需要在删除行/列时保存数据框以便观察更改!

我检查了 rid!=0 因为 diff() 给出的第一个元素为 NaN,您可以应用任何适当的条件。

关于python - pandas - 如何添加带索引的行并比较数据的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586863/

相关文章:

python - 解析 XML Python

python - 如何保存然后从数据框中的文件名中提取一些信息

需要python基本解释

python - rpy2 在 jupyter 实验室中将 python 对象转换为 R 对象

python - 如何使用 OpenCV 去除图像上的蓝色背景颜色?

python if/else 列表理解

python - 禁用下一个按钮的回车键 pyqt5 QWizard

python - 平均精度解释

python - django 静态文件 - 不起作用

python - 为什么在 chrome 浏览器上无法使用 Seeking 属性??但它可以在 IE 上运行