[英]Joining pandas DataFrame columns together based on column name
I have a pandas Dataframe that looks something like this: 我有一个熊猫数据框,看起来像这样:
df
A.1 B.1 C.1 A.2 B.2 C.2 A.3 B.3 C.3
1 a m 4 d p 7 g s
2 b n 5 e q 8 h t
3 c o 6 f r 9 i u
and I would like to merge all of the columns containing similar names in to the same column. 我想将所有包含相似名称的列合并到同一列中。 So the output would be a DataFrame like this: 因此,输出将是一个像这样的DataFrame:
df
A B C
1 a m
2 b n
3 c o
4 d p
5 e q
6 f r
7 g s
8 h t
9 i u
What is the most efficient/elegant way to do this? 什么是最有效/最优雅的方法?
Here's one approach, turning your columns into a multi-index and unstacking. 这是一种方法,可以将您的列转换为多索引并进行堆叠。
In [220]: mult_index = [tuple(x.split('.')) for x in df.columns]
In [221]: df.columns = pd.MultiIndex.from_tuples(mult_index)
In [222]: df.stack()
Out[222]:
A B C
0 1 1 a m
2 4 d p
3 7 g s
1 1 2 b n
2 5 e q
3 8 h t
2 1 3 c o
2 6 f r
3 9 i u
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.