удалить строку с порогом или категорией и сохранить в нескольких CSV в пандах - PullRequest
0 голосов
/ 20 июня 2019

Я новичок в питоне. У меня большие данные выглядят так:

df
Mean       id
0.089394    1
0.389394    2
0.047313    3
0.047313    4
0.767004    5
0.767004    6
0.363154    7
0.363154    8
0.098941    9
1.578785    10
0           11
.....

Я хочу исключить или удалить данные столбца среднего значения строки с категорией от 0 до 2 (например:> 0,> 0,1,> 0,2, до> 2). Я использовал этот код:

df = df[df.Mean > 0]

если я использую этот код, мне придется ставить много пороговых категорий для каждого кода. Есть ли элегантный способ автоматически рассчитывать и сохранять в несколько CSV на основе каждого порога?

например, вывод моего желания для> 0

df>0
Mean       id
0.089394    1
0.389394    2
0.047313    3
0.047313    4
0.767004    5
0.767004    6
0.363154    7
0.363154    8
0.098941    9
1.578785    10

для> 0,1

df>0.1
Mean       id
0.089394    1
0.389394    2
0.767004    5
0.767004    6
0.363154    7
0.363154    8
1.578785    10

и т. Д.

1 Ответ

2 голосов
/ 21 июня 2019

Определите функцию, которая принимает среднее значение и порог в качестве переменных:

def helping_func(value, threshold):
    return (value > threshold)

Используйте цикл for для выполнения условной проверки и сохранения в отдельных файлах csv:

for i in np.arange(0,21,1): # to import numpy as np
    threshold = i/10 # to overcome floating point inaccuracy
    result_df = df[helping_func(df["Mean"], threshold)]
    csvFileName = "result" + str(i) + ".csv" # name the individual csv files in any format as you deemed appropriate
    result_df.to_csv(csvFileName, sep=",") # sep character at your preference

Либо просто примените условную проверку внутри цикла for:

for i in np.arange(0,21,1): # to import numpy as np
    threshold = i/10 # to overcome floating point inaccuracy
    result_df = df[df["Mean"] > threshold]
    csvFileName = "result" + str(i) + ".csv" # name the individual csv files in any format as you deemed appropriate
    result_df.to_csv(csvFileName, sep=",") # sep character at your preference
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...