【发布时间】:2014-07-13 05:52:30
【问题描述】:
从这个答案中汲取灵感:pandas: apply function to DataFrame that can return multiple rows
就我而言,我有类似的东西,但更大:
df = pd.DataFrame({'Restaurants': ['A', 'B', 'C'],
'Tables':['D', 'E', 'F'],
'Chairs': ['G', 'H', 'I'],
'Menus': ['J', 'K', 'L'],
'Fridges': ['M', 'N', 'O'],
'Etc...': ['P', 'Q', 'R'], 'count':[3, 2, 3]})
Restaurants Tables Chairs Menus Fridges Etc... Count
0 A D G J M P 3
1 B E H K N Q 2
2 C F I L O R 3
我想修改这个:
def f(group):
row = group.irow(0)
return DataFrame({'class': [row['class']] * row['count']})
df.groupby('class', group_keys=False).apply(f)
所以我可以得到
Restaurants Tables Chairs Menus Fridges Etc...
0 A D G J M P
1 A D G J M P
2 A D G J M P
0 B E H K N Q
1 B E H K N Q
0 C F I L O R
1 C F I L O R
2 C F I L O R
有没有不输入每一列名称的简单方法?
【问题讨论】:
-
为什么要这样做?如,您确定这实际上是您想要做的吗?
标签: python pandas data-analysis