【发布时间】:2020-02-21 22:21:42
【问题描述】:
我正在深入研究 pandas 多索引,我想知道是否可以用多索引替换 groupby 迭代处理。
目前我使用这个功能
原始数据:
station_name station_code breaktype
0 ABC ABC1 N
1 American Heroes HERO L
2 American Heroes HERO N
3 American Movie Classics AMC L
4 American Movie Classics AMC N
5 Animal Planet ANPL L
6 Animal Planet ANPL N
目前我使用这个功能:
def createRegexPattern(df):
df = df.copy()
groups = df.groupby(["station_name", "station_code"])
patterns = pd.DataFrame([], columns=["origional_index", "root_words", "pattern"])
for key, group in groups:
patterns = patterns.append(pd.DataFrame(
{"origional_index": [group.index.to_list()],
"root_words": [key],
"pattern": [tuple(functools.reduce(lambda x,y: x + re.split('[\s,-]',y.strip()), key,[]))]}
))
return patterns.reset_index(drop=True)
制作这个:
origional_index root_words pattern
0 [0] (ABC, ABC1) (ABC, ABC1)
1 [1, 2] (American Heroes, HERO) (American, Heroes, HERO)
2 [3, 4] (American Movie Classics, AMC) (American, Movie, Classics, AMC)
3 [5, 6] (Animal Planet, ANPL) (Animal, Planet, ANPL)
我是否可以使用多索引来生成如下结果: 多索引的期望结果
origional_index breaktype
station_name station_code pattern
0 ABC ABC1 (ABC, ABC1) 0 N
1 American Heroes HERO (American, Heroes, HERO) 1 L
2 N
2 American Movie Classics AMC (American, Movie, Classics, AMC) 3 L
4 N
3 Animal Planet ANPL (Animal, Planet, ANPL) 5 L
6 N
这对 DataFrame 是否可行,或者我应该在前进时停下来......
【问题讨论】:
标签: python pandas multi-index