2017-10-16 93 views
0

假设我有一组列,并且我想将它们分组仅用于索引目的。例如,我有一个数据帧df,其中26列从["A",...,"Z"]调用,它的行是文档中字母的出现位置。如何将pandas中的列按给定类别分组?

现在我想分割“元音”和“辅音”之间的数据框,以便我可以只用类似df["Vowels"]df[["Vowels"]]之类的元音获得数据框。也就是说,有没有多指标这个问题或任何其他熊猫工具的方法?我知道一个简单的解决方案将定义Vowels=["a",..."y"],然后做df[Vowels],但我想使用熊猫功能,如果可用。

另一个例子是温度的不同传感器在不同的城市一时间序列和我想获得一个表,看起来像这样: enter image description here 所以,在我的分析,我可以做df[['City 1]].plot(),我可以快速导航在我的数据。

回答

2

是的,熊猫有一个强大的系统MultiIndexing。做你想要的东西的一种方法如下:

vowels = ['A','E','I','O','U','Y'] 
tuples = [('Vowel' if x in vowels else 'Consonant', x) for x in df.columns.tolist()] 
df.columns = pd.MultiIndex.from_tuples(tuples, names=['Kind', 'Letter']) 

首先你要元音的列表(可能需要包括字母带重音符号,变音符号,等等,这取决于你的使用情况)。然后,制作第一个值为'Vowel''Consonant'的元组列表,第二个值是列表中每个字母的字母。然后你从这些元组中创建一个MultiIndex。

相关问题