Сохранение объединенных ячеек в Excel и вставка df в определенные ячейки и столбцы - PullRequest
0 голосов
/ 17 сентября 2018

В настоящее время я пытаюсь заполнить пустые ячейки 1 и сохраняю ячейки строковыми значениями (например, S, R, G, B).

Мой источник данных - это файл Excel, который имеет следующее.

Необработанные данные:

Customer ID      1      2    3    4
0010                    R    G    G
                 S      A    A
0599             R                B
0442             A      B  

* Обратите внимание, что 0010 - это объединенная ячейка, а столбцы1,2,3,4 не объединены.

Предполагаемые выходные данные

Customer ID      1     2    3    4
0010             1     R    G    G
 1               S     A    A    1
0599             R     1    1    B
0442             A     B    1    1

Я хотел бы сохранить объединенный «Идентификатор клиента».Есть ли способ обойти это?А также я могу установить функцию, которая будет применяться только к определенным строкам и столбцам?А также вставить обратно в определенные строки и столбцы?

Текущий код:

data = pd.read_excel('path',header=0)
df = pd.DataFrame(data)

df= df.fillna(1)

df.to_excel('path', index=False)

1 Ответ

0 голосов
/ 17 сентября 2018

Попробуйте указать, что поле Customer ID является object.Это должно привести к тому, что пустые значения будут выглядеть как Nan.Тогда fillna() должен работать как положено:

import pandas as pd

df = pd.read_excel('path.xlsx', header=0, dtype={'Customer ID':object})

print(df)
df = df.fillna('1')
print(df)

df.to_excel('path_out.xlsx', index=False)

Это будет отображать:

  Customer ID    1    2    3    4
0        0010  NaN    R    G    G
1         NaN    S    A    A  NaN
2        0599    R  NaN  NaN    B
3        0442    A    B  NaN  NaN

  Customer ID  1  2  3  4
0        0010  1  R  G  G
1           1  S  A  A  1
2        0599  R  1  1  B
3        0442  A  B  1  1

Если Customer ID является объединенной ячейкой, например, объединение A и B,тогда вы можете пропустить объединенный столбец следующим образом:

df = pd.read_excel('path.xlsx', usecols="A,C:F", header=0, dtype={'Customer ID':object})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...