У меня есть DataFrame, который выглядит следующим образом: {"Val1": [...], "Val2": [...]}
То, что я сейчас хочу достичь, это DataFrame, который выглядит следующим образом:
{
"Vals": [<should contain all vals from Val1 and Val2>],
"type": [<1 or 2 depending on the column from which
the corresponding value originated>]
}
Я мог бы сгенерировать это, например:
new = DataFrame({"vals": old.vals1.values + old.vals2.values,
"type": ([1] * len(old)) + ([2] * len(old))})
Но это выглядит очень странно, и мне интересно, есть ли элегантный однострочник, использующий метод панд.Потому что в моей реальной проблеме таблица имеет еще 4 столбца, и тогда мои хакерские решения становятся довольно интенсивными при наборе текста.
РЕДАКТИРОВАТЬ: конкретный пример будет:
old = pd.DataFrame({"A": [2, 4, 5], "B": [1, 2, 3], "C":[4, 5, 6]})
new = pd.DataFrame({"A": [2, 4, 5, 2, 4, 5], "B and C": [1, 2, 3, 4, 5, 6], "type": (["B"] * 3) + (["C"] * 3)})
old:
A B C
0 2 1 4
1 4 2 5
2 5 3 6
new:
A B and C type
0 2 1 B
1 4 2 B
2 5 3 B
3 2 4 C
4 4 5 C
5 5 6 C