我对熊猫很有经验,但偶然发现了一个我似乎无法解决的问题
我有一个很大的数据集((40000,16)),我正试图通过一个特定的列(“group_name”来对其进行分组,然后对每个组应用以下规则,以便将其合并到每个组的一行中:
下面是一个示例,其中6行应分成4组(也称为4行)
到目前为止我有
groups = df.groupby['group_name']
我尝试了许多其他的解决方案,例如对每个组求和、应用转换、按每个“重要”列聚合、合并每个“重要”列等等。 每个解决方案都会带来自己的问题,所以我在这里提出这个问题,而不是以某种方式限制人们
此外,我花了近两天时间将其他问题的不同解决方案结合起来,但似乎都不起作用。也许我错过了什么
我希望我把一切都解释清楚,如果有不清楚的地方请告诉我
重新创建数据帧的代码(感谢第一个答案中的@Henry Ecker):
df = pd.DataFrame({
'group_name': ['A', 'A', 'B', 'C', 'D', 'D'],
'z1': ['value1', 'different_value', 'value1',
'value1', 'value99', 'value999'],
'z2': ['value2'] * 4 + ['value100', 'value1000'],
'z3': ['value3'] * 4 + ['value101', 'value101'],
'zN': ['valueN'] * 5 + ['valueN200'],
'x1': ['a', None, None, 'abc', 'xx', None],
'x2': [None, 'b', None, 'def', 'yy', None],
'x3': [None, None, None, None, 'zz', 'ff']
})
尝试使用^{} 'first'从每个
group_name
的每个列中获取第一个(有效)值:new_df
:*请注意,如果这些是字符串} ,请先将其取出+^{} 以将其放回:
'null'
^{new_df
:使用的数据帧:
使用字符串
'null'
的数据帧:相关问题 更多 >
编程相关推荐