使用python熊猫从数据框中删除特定值

时间:2018-10-10 13:15:01

标签: python pandas numpy

试图减少时间波中的噪声,我想删除非常大的数据帧的行中特定但不同的值。我只能找到删除整行或整列的选项,但这不是我所需要的。 一行对应于一个测量ID(总计30k),一列对应于一个时间步长(总计2500)。 数据框如下所示: x1,x2,x3,.....,x2500 -0.001213,-0.001699、0.003154,...,-0.001213 0.000243,-0.009706,-0.003397,...,0.002184 等等

我选择了要与for循环比较阈值的数据,并将其存储在具有一和零的np.array中。

我需要新数据帧中的选定数据(用于制作csv)以进行进一步处理。 **所选数据应仅由旧数据帧的值组成,在该位置的选择数组中该数据值为1。** 感谢您提供任何有用的建议。

1 个答案:

答案 0 :(得分:0)

要修改数据框中一行的特定值,可以使用applymap方法。

假设您要在数据框中替换一个值列表:

import numpy as np
import pandas as pd

value_to_remove=[4,6,10]

arr=np.reshape(np.arange(16),(4,4))
df=pd.DataFrame(arr,columns=['a','b','c','d'])

df=df.applymap(lambda x: np.nan if x in value_to_remove else x)

如果您需要修改特定行内的值,请改用map:

df.loc[1]=df.loc[1].map(lambda x: np.nan if x in value_to_remove else x)