dt = pd.DataFrame ({'key1': np.random.choice(['a', 'b'], size=100),
'key2': np.random.choice(['c', 'd'], size=100),
'data1': np.random.randint(5, size=100),
'data2': np.random.randn(100)},
columns = ['key1', 'key2','data1', 'data2'])
#insert nan
dt['data1'].ix[[2,6,10]]= None
# group by key1 and key2
group =dt.groupby(['key1', 'key2'])['data1']
group.value_counts(dropna=False)
key1 key2 data1
a c 1.0 8
4.0 6
0.0 4
2.0 2
3.0 1
d 0.0 7
1.0 6
4.0 6
2.0 5
NaN 3
3.0 1
b c 0.0 7
2.0 7
1.0 3
3.0 2
4.0 2
d 2.0 11
1.0 10
0.0 3
3.0 3
4.0 3
非常感谢您的帮助!
使用.transform(lambda y:y.fillna(y.value_counts().idxmax()))
之前
key1 key2 data1
a c 1.0 6
3.0 5
0.0 4
2.0 3
4.0 3
NaN 1
d 1.0 11
3.0 9
0.0 5
2.0 5
4.0 5
b c 4.0 7
0.0 4
3.0 4
2.0 3
NaN 2
1.0 1
d 4.0 6
1.0 5
2.0 5
3.0 4
0.0 2
Name: data1, dtype: int64
在应用.transform(lambday:y.fillna(y.value_counts().idxmax()))
之后
dt['nan_filled'] = dt.groupby(['key1', 'key2'])['data1'].transform(lambda y: y.fillna(y.value_counts().idxmax()))
group = dt.groupby(['key1', 'key2'])['nan_filled']
group.value_counts(dropna=False)
key1 key2 nan_filled
a c 1.0 7
3.0 5
0.0 4
2.0 3
4.0 3
d 1.0 11
3.0 9
0.0 5
2.0 5
4.0 5
b c 4.0 9
0.0 4
3.0 4
2.0 3
1.0 1
d 4.0 6
1.0 5
2.0 5
3.0 4
0.0 2
Name: nan_filled, dtype: int64
我是sql新手,我有一个postgresql数据库,它有: 表 我只需要从db|name1|name3获取3行 数据库有300000多行。 我尝试使用: 我得到了 但是如何在每个组中添加任何名称3在SQL和django orm中最好的方法是什么?
问题内容: 我有一个类似于下面的数据框 我想为列做一个空值估算,,在正向充填,但每个组。那就是说,我希望将前向填充应用于每个。我怎样才能做到这一点? 问题答案: 使用每团体向前填充所有列,但如果每个小组第一值是在那儿没有更换,所以可以使用和最后浇铸成整数: 详情: 要么:
我正在使用网络日志,数据中包含帐户id和会话id。多个会话可以与一个帐户关联。我想创建一个包含帐户id的新数据框,并计算与该帐户关联的唯一会话数。我的df看起来像这样: 我正在使用以下代码: 我得到的输出如下: 我期望的输出 我该怎么修?
问题内容: 所以我有这张桌子。它有几百行。每行中都有一个日期时间字段。我需要完成的是获取给定时间段内有多少行,而不是整个时间段,而是该时间段的每一天。到此为止,我知道该怎么办。但是,此外,我还需要在表中没有值0的日期的行。 因此,例如: 应该给我这样的结果: 任何人都可以帮忙吗? 问题答案: 为了处理带有0条对应记录的日期,我的常规做法是使用日历表进行联接。 例如,创建一个表,其中一个字段称为,并
我想知道有没有人能帮我把一个较长的行分成几个较短的行,然后再把它们拆开? 在本例中,我有12列长的行,我希望将其分成更多的行和4列(请参阅stack_df)。 总体计划是按行合并()所有列,并将()突变为一列(9行x 1列,请参阅merge_df)。 之后,我希望将它们解压回一个大小为3行3列的数据帧(请参阅simple_df) 第3部分:解叠行(3行,3列)。(所需输出)
问题内容: 我想使用Python比较列表中的每个可能的对。 假设我有 我想对列表中2个元素的每个组合进行操作(我们称其为foo)。 最终结果应与 我的第一个想法是手动遍历列表两次,但这似乎不是很Python。 问题答案: 在模块中签出。它完全符合您的描述。 这等效于: 编辑: 有两个非常相似的功能,以及,和。为了说明它们之间的区别: 生成所有可能的元素对,包括所有重复项: 生成每个唯一元素对的所有