Я использую Python, и у меня есть несколько столбцов, в которые добавлено несколько символов.
Так, если столбец когда-то был "A", то теперь он говорит "('A', '')". Поэтому мне нужно удалить ('и', ''). Некоторые переменные (точнее 400) должны были называться «1 А», но называются «(« А », 1)». Поэтому для этого мне нужно удалить ('и',) и переместить число в начало A. Они стали такими после команды pivot_table.
Так что мне нужно go от до до:
data_before = {"('A', '')" : ['a', 'b', 'c'],
"('B', '')" : ['p', 'o', 'n'],
"('C', 1)" : [1, 1, 1],
"('C', 2)" : [1, 2, 1],
"('D', 1)" : [1, 2, 4],
"('D', 2)" : [1, 5, 3]}
df = pd.DataFrame(data=data_before)
data_after = {'A' : ['a', 'b', 'c'],
'B' : ['p', 'o', 'n'],
'1 C' : [1, 1, 1],
'2 C' : [1, 2, 1],
'1 D' : [1, 2, 4],
'2 D' : [1, 5, 3]}
df_2 = pd.DataFrame(data=data_after)
Имейте в виду, что есть 42 переменные, которые выглядят как C и D, и каждая из них go из От 1 до 10 (не только 2), таким образом, есть 420 столбцов. Я не хочу записывать каждый из них вручную, чтобы изменить имя. Только 3 первые переменные выглядят как А и В. (всего 423 столбца).
Обновление для размещения большего количества букв и цифр. Итак 1 C, 2 C ... 10 C и 1 Z, 2 Z ... 10 Z.
data_before = {"('A', '')" : ['a', 'b', 'c'],
"('B', '')" : ['p', 'o', 'n'],
"('C', 1)" : [1, 1, 1],
"('C', 2)" : [1, 2, 1],
"('C', 3)" : [3, 2, 1],
"('D', 1)" : [1, 2, 3],
"('D', 2)" : [1, 2, 3],
"('D', 3)" : [1, 2, 3],
"('E', 1)" : [1, 1, 1],
"('E', 2)" : [1, 2, 1],
"('E', 3)" : [3, 2, 1]}
df = pd.DataFrame(data=data_before)
data_after = {'A' : ['a', 'b', 'c'],
'B' : ['p', 'o', 'n'],
'1 C' : [1, 1, 1],
'2 C' : [1, 2, 1],
'3 C' : [3, 2, 1],
'1 D' : [1, 2, 3],
'2 D' : [1, 2, 3],
'3 D' : [1, 2, 3]
'1 E' : [1, 1, 1],
'2 E' : [1, 2, 1],
'3 E' : [3, 2, 1]}
df_2 = pd.DataFrame(data=data_after)
Эта команда:
df.columns = [f'{b} {a}'.strip() for a, b in df.columns]
Возвращает:
ValueError: too many values to unpack (expected 2)