Применение l oop для изменения названия столбцов и разделения текста на python - PullRequest
0 голосов
/ 08 апреля 2020

Входной файл: входное изображение

import pandas as pd
df = pd.read_excel("C:/Users/Desktop/Replace.xlsx",header=None)
df.shape[1]
df['Ind 0'] = df['Col 0'].str[1:]
df['Ind 1'] = df['Col 1'].str[1:]
df['Ind 2'] = df['Col 2'].str[1:]
df.to_excel("C:/Users/Desktop/Replace.xlsx", index=False)

Обязательный выход: Выходное изображение

Я получаю этот вывод из приведенного выше кода. Но мне нужно для l oop для этой задачи (назначить новое имя столбца и некоторые операции нарезки на значение столбца). Так что всякий раз, когда количество столбцов меняется значение. Это автоматически позаботится и обеспечит требуемый результат, как упомянуто.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Быстрое и грязное решение.

for _ in range(1,df.shape[1]):
    df['Ind ' + str(_)] = df['Col ' + str(_)].str[1:]

Это работает? Я не уверен, что вы начинаете свои столбцы с 0 или 1. Входной файл имеет столбец 0, а ваш код - нет. Кроме того, это добавляет новые столбцы и не заменяет их так, как вы указали в выходном файле.

0 голосов
/ 08 апреля 2020

Попробуйте это

import pandas as pd
d = {'Col 1': ['1A', '1B', '1C', '1D'], 'Col 2': ['2A', '2B', '2C', '2D'], 'Col 3': ['3A', '3B', '3C', '3D']}
df = pd.DataFrame(d)
df = df.replace(regex=r'[0-9]', value= '')
df.columns = ['Ind 1', 'Ind 2', 'Ind 3']
print(df)

Вывод:

  Ind 1 Ind 2 Ind 3
0     A     A     A
1     B     B     B
2     C     C     C
3     D     D     D
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...