#python #pandas
Вопрос:
data = {
'Column 1': ['A', 'B'],
'Column 2': ['a_base', 'b_base'],
'Column 3': ['a_part', 'b_part']
}
df = pd.DataFrame(data)
Дает результат:
Column 1 | Column 2 | Column 3
A | a_base | a_part
B | b_base | b_part
Как я могу получить следующее:
New Column 1 | New Column 2
A | a_base
A | a_part
B | b_part
B | b_part
Комментарии:
1. Ты пробовал растаять?
Ответ №1:
Вы можете melt
добавить столбцы 2 и 3 в новый столбец, затем выбрать и отсортировать по столбцам, которые вы хотите сохранить.
import pandas as pd
data = {
'Column 1': ['A', 'B'],
'Column 2': ['a_base', 'b_base'],
'Column 3': ['a_part', 'b_part']
}
df = pd.DataFrame(data)
df2 = df.melt(id_vars=['Column 1'], value_vars=['Column 2', 'Column 3'], value_name='New Column 2')
df2 = df2[['Column 1', 'New Column 2']].sort_values(by='Column 1')
print(df2)
Выход:
Column 1 New Column 2
0 A a_base
2 A a_part
1 B b_base
3 B b_part
Комментарии:
1. Спасибо @Ящерица Билл! Это прекрасно работает! Я решаю реальную проблему на работе, которая связана с продуктами нашей компании, базовыми моделями и деталями. Эта «мини-проблема» и ее решение напрямую связаны с моей реальной рабочей проблемой. Спасибо!