Панды: датафрейм с обновленным, длинным столбцом - PullRequest
0 голосов
/ 26 октября 2018

Мой скрипт запускается, поскольку он создает фрейм данных с заголовками Pass и Error. Затем он читает все источники, чтобы по умолчанию упасть под Pass. Затем он обнаруживает все ошибки, которые удаляют этот источник из Pass, и отмечает его в столбце Error.

создает DataFrame с Pass, Error заголовками

    Pass     Error   

добавляет источники

    Pass     Error  
0   source1  NaN  
1   source2  NaN  

У меня 4 ошибки как pd.Series(errors), но отображаются только первые две ошибки. Как мне достичь моего ожидаемого ?

актуально

    Pass     Error  
0   source1  source2err1  
1   NaN      source2err2  

ожидается

    Pass     Error  
0   source1  source2err1  
1   NaN      source2err2  
2   NaN      source2err3  
3   NaN      source2err4    

ОБНОВЛЕНИЕ

def update_df(file):
    errors = report_df[ERROR].dropna().tolist()
    sources = report_df[PASS].dropna().tolist()   
    new_errors = get_errors(file)
        if new_errors:  
            errors.extend(new_errors)  
            if file in sources:  
                sources.remove(file)  
    report_df[ERROR] = pd.Series(errors)  
    report_df[PASS] = pd.Series(sources)

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете попробовать создать новый DataFrame с помощью Series, например:

sources = list('xy')
errors = list('abcd')
df = pd.DataFrame({'Pass': pd.Series(sources), 'Errors': pd.Series(errors)})
print (df)
  Pass Errors
0    x      a
1    y      b
2  NaN      c
3  NaN      d

Или используйте concat:

sources = list('xy')
errors = list('abcd')
df = pd.concat([pd.Series(sources), pd.Series(errors)], keys=('Pass','Errors'), axis=1)
print (df)
  Pass Errors
0    x      a
1    y      b
2  NaN      c
3  NaN      d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...