替换DataFrame

时间:2016-09-01 18:49:00

标签: python pandas replace dataframe

我是Python编程的新手,并且有一个关于替换DataFrame中的某些条件数的问题。 例如,我有一个日期框架,每列有5天的数据,第1天,第2天,第3天,第4天和第5天。对于每一天,我有5个数据点,其中一些数据点每天大于5。现在我想设置大于5比1的数据。 那我该怎么办呢?循环进入每一列并找到特定元素然后更改它,还是有其他更快的方法来做到这一点? 谢谢,

2 个答案:

答案 0 :(得分:1)

要做到这一点而不进行循环(通常更快),您可以这样做:

df[df > 5] = 1

答案 1 :(得分:0)

这将迭代每列中的数据,并将高值更改为1.按行{而不是列进行迭代iterrows,如here所述,但它通常较慢

import pandas as pd


data = {'day1' : pd.Series([1, 2, 3]),
        'day2' : pd.Series([1, 4, 6]),
        'day3' : pd.Series([5, 4, 3]),
        'day4' : pd.Series([2, 4, 6]),
        'day5' : pd.Series([7, 3, 2])}

df = pd.DataFrame(data)

enter image description here

for col in df.columns:
    df[col] = [x if x <= 5 else 1 for x in df[col]]

enter image description here