📅  最后修改于: 2023-12-03 15:25:27.058000             🧑  作者: Mango
在 pandas 中,可以使用元组类型作为列索引,每个元组包含两个字符串类型的值,表示大类和小类。本文将介绍如何将包含元组的列拆分成两个独立的列。
先创建一个包含元组类型的 DataFrame:
import pandas as pd
data = {
('A', 'a'): [1, 2, 3],
('A', 'b'): [4, 5, 6],
('B', 'c'): [7, 8, 9],
}
df = pd.DataFrame(data)
print(df)
输出:
A B
a b c
0 1 4 7
1 2 5 8
2 3 6 9
可以使用 MultiIndex 提供的 get_level_values 方法获取大类和小类:
df.columns = pd.MultiIndex.from_tuples(df.columns)
df['大类'] = df.columns.get_level_values(0)
df['小类'] = df.columns.get_level_values(1)
print(df)
输出:
A B 大类 小类
a b c
0 1 4 7 A a
1 2 5 8 A b
2 3 6 9 B c
也可以使用 str.split() 方法将列名拆分成两部分:
df.columns = df.columns.map(lambda x: '|'.join(x))
df[['大类', '小类']] = df.columns.str.split('|', expand=True)
print(df)
输出:
A|a A|b B|c 大类 小类
0 1 4 7 A a
1 2 5 8 A b
2 3 6 9 B c
以上就是使用 MultiIndex 和 split 方法对包含元组的 pandas 列进行拆分的方法。根据实际情况选用合适的方法即可。