2016-09-01 2 views
1

Я довольно новичок в программировании на Python и задаюсь вопросом о замене определенного условного числа в DataFrame. Например, у меня есть дата-кадр с 5 днями данных в каждом столбце, день1, день2, день3, день4 и день5. Для каждого дня у меня есть 5 точек данных, некоторые из которых больше 5 для каждого дня. Теперь я хочу установить данные, которые больше 5 к 1. Итак, как я могу это сделать? Петля в каждом столбце и найдите определенный элемент, затем измените его, или есть другой более быстрый способ сделать это? Благодаря,заменить определенное число в DataFrame

ответ

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

1

Чтобы сделать это без зацикливания (обычно быстрее) вы можете сделать:

df[df > 5] = 1 
Смежные вопросы