要按索引子字符串对Pandas DataFrame进行分组,可以使用groupby
函数和str.extract
函数结合使用。
这里是一个示例代码:
import pandas as pd
# 创建示例DataFrame
data = {'Index': ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'],
'Value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 使用正则表达式提取索引子字符串
df['Index_substring'] = df['Index'].str.extract('(\D+)', expand=False)
# 按索引子字符串进行分组
grouped = df.groupby('Index_substring')
# 打印每个分组的内容
for name, group in grouped:
print(f"Group: {name}")
print(group)
print()
输出结果:
Group: A
Index Value Index_substring
0 A1 1 A
1 A2 2 A
Group: B
Index Value Index_substring
2 B1 3 B
3 B2 4 B
Group: C
Index Value Index_substring
4 C1 5 C
5 C2 6 C
在这个示例中,我们首先使用str.extract
函数将索引列中的非数字部分提取出来,并将它们存储在一个新的列Index_substring
中。然后,我们使用groupby
函数按照Index_substring
列进行分组。最后,我们遍历每个分组,并打印出分组的内容。
请注意,这里使用的正则表达式(\D+)
用于提取非数字字符。如果你的索引子字符串的格式不同,你可能需要调整正则表达式以适应你的数据。