Проблема со столбцами в CSV с использованием Pandas Groupby - PullRequest
0 голосов
/ 25 мая 2018

У меня есть эти столбцы ниже в моем CSV.Обычно все эти столбцы имеют значения, как показано ниже, и код работает гладко.

dec list_namme  list    device        Service    Gate
12   food      cookie   200.56.57.58    Shop     123

Теперь я столкнулся с проблемой, я получил один CSV-файл, который имеет все эти столбцы, но для них нет содержимого.Здесь это выглядит как ..

dec list_namme  list    device  Service Gate

, и как только код запускается поверх него, он создает новый CSV с столбцами ниже, что не ожидалось.Я получил новое имя столбца как index , а также, вместо 3 (device service Gate) столбцов, я ошибаюсь 2.

index   Gate

Для csv, имеющего содержимое, я не столкнулся с какой-либо проблемойдаже столбцы идут правильно.

Ниже приведен код.Код:

if os.path.isfile(client_csv_file):
         df=pd.read_csv(csv_file) #Read CSV
         df['Gate']=df.Gate.astype(str)
         df = df.groupby(['device', 'Service'])['Gate'].apply(lambda x: ', '.join(set(x))).reset_index()
     df.to_csv(client_out_file, index=False)

Пожалуйста, помогите мне в этом коде, чтобы исправить это.

1 Ответ

0 голосов
/ 25 мая 2018

Выполнение groupby на пустом фрейме данных приводит к созданию фрейма данных без столбцов с ключом группы.

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

if os.path.isfile(client_csv_file):
    df = pd.read_csv(csv_file)
    if df.empty:
        df = df[['device', 'Service', 'Gate']]
    else:
        df['Gate'] = df.Gate.astype(str)
        df = df.groupby(['device', 'Service'])['Gate']\
               .apply(lambda x: ', '.join(set(x))).reset_index()
    df.to_csv(client_out_file, index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...