我是Python编程的新手,并且有一个关于替换DataFrame中的某些条件数的问题。 例如,我有一个日期框架,每列有5天的数据,第1天,第2天,第3天,第4天和第5天。对于每一天,我有5个数据点,其中一些数据点每天大于5。现在我想设置大于5比1的数据。 那我该怎么办呢?循环进入每一列并找到特定元素然后更改它,还是有其他更快的方法来做到这一点? 谢谢,
答案 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)
for col in df.columns:
df[col] = [x if x <= 5 else 1 for x in df[col]]