我有一个这样的数据框
ID col1 col2
1 Abc street 2017-07-27
1 None 2017-08-17
1 Def street 2018-07-15
1 None 2018-08-13
2 fbg street 2018-01-07
2 None 2018-08-12
2 trf street 2019-01-15
Run Code Online (Sandbox Code Playgroud)
我想过滤col1中的所有“无”并将相应的col2值添加到新列col3中。我的输出看起来像这样
ID col1 col2 col3
1 Abc street 2017-07-27 2017-08-17
1 Def street 2018-07-15 2018-08-13
2 fbg street 2018-01-07 2018-08-12
2 trf street 2019-01-15
Run Code Online (Sandbox Code Playgroud)
谁能帮助我实现这一目标。
我有以下数据帧:
fsq digits digits_type
0 1 1 odd
1 2 1 odd
2 3 1 odd
3 11 2 even
4 22 2 even
5 101 3 odd
6 111 3 odd
Run Code Online (Sandbox Code Playgroud)
我想添加一个最后一列,count包含属于数字组的fsq 数,即:
fsq digits digits_type count
0 1 1 odd 3
1 2 1 odd 3
2 3 1 odd 3
3 11 2 even 2
4 22 2 even 2
5 101 3 odd 2
6 111 3 odd 2
Run Code Online (Sandbox Code Playgroud)
由于有3个 …
我正在通过操作做一个简单的组,试图比较组的意思.如下所示,我从较大的数据框中选择了特定列,从中删除了所有缺失值.

但是当我分组时,我失去了几列:

我从来没有遇到过大熊猫的问题,而且我在堆栈溢出上找不到任何类似的东西.有人有任何见解吗?
我有以下pandas DataFrame:
time Group blocks
0 1 A 4
1 2 A 7
2 3 A 12
3 4 A 17
4 5 A 21
5 6 A 26
6 7 A 33
7 8 A 39
8 9 A 48
9 10 A 59
.... .... ....
36 35 A 231
37 1 B 1
38 2 B 1.5
39 3 B 3
40 4 B 5
41 5 B 6
.... .... ....
911 35 Z 349
Run Code Online (Sandbox Code Playgroud)
这是多个时间序列,疑问句数据的数据帧,从 …
使用groupby方法时出错了:
data = pd.Series(np.random.randn(100),index=pd.date_range('01/01/2001',periods=100))
keys = lambda x: [x.year,x.month]
data.groupby(keys).mean()
Run Code Online (Sandbox Code Playgroud)
但它有一个错误:TypeError:unhashable type:'list'.我想按年和月分组,然后计算方法,为什么有错?
我想将用户事务聚合到pandas中的列表中.我无法弄清楚如何制作一个包含多个字段的列表.例如,
df = pd.DataFrame({'user':[1,1,2,2,3],
'time':[20,10,11,18, 15],
'amount':[10.99, 4.99, 2.99, 1.99, 10.99]})
Run Code Online (Sandbox Code Playgroud)
看起来像
amount time user
0 10.99 20 1
1 4.99 10 1
2 2.99 11 2
3 1.99 18 2
4 10.99 15 3
Run Code Online (Sandbox Code Playgroud)
如果我做
print(df.groupby('user')['time'].apply(list))
Run Code Online (Sandbox Code Playgroud)
我明白了
user
1 [20, 10]
2 [11, 18]
3 [15]
Run Code Online (Sandbox Code Playgroud)
但如果我这样做
df.groupby('user')[['time', 'amount']].apply(list)
Run Code Online (Sandbox Code Playgroud)
我明白了
user
1 [time, amount]
2 [time, amount]
3 [time, amount]
Run Code Online (Sandbox Code Playgroud)
感谢下面的回答,我了解到我可以做到这一点
df.groupby('user').agg(lambda x: x.tolist()))
Run Code Online (Sandbox Code Playgroud)
要得到
amount time
user
1 [10.99, 4.99] [20, 10]
2 [2.99, 1.99] [11, 18]
3 …Run Code Online (Sandbox Code Playgroud) 在熊猫中,我想做:
df.groupby('A').filter(lambda x: x.name > 0)- 按列A分组,然后过滤名称值为非正值的组。然而,这会取消分组作为GroupBy.filter返回DataFrame并因此丢失分组。我想按此顺序执行此操作,因为它的计算量要求较低,因为filter其次groupby会遍历 DataFrame 两次(先过滤然后分组)?此外,从分组中克隆组(到 dict 或其他内容)会使我失去无缝返回数据框的功能(就像在示例中.filter直接获取DataFrame)
谢谢
例子:
A B
1 -1 1
2 -1 2
3 0 2
4 1 1
5 1 2
Run Code Online (Sandbox Code Playgroud)
df.groupby('A'):
GroupBy object
-1 : [1, 2]
0 : [3]
1 : [4,5]
Run Code Online (Sandbox Code Playgroud)
GroupBy.filter(lambda x: x.name >= 0):
GroupBy object
0 : [3]
1 : [4,5]
Run Code Online (Sandbox Code Playgroud) 鉴于以下pandas数据框:
ColA ColB ColC
0 a1 t 1
1 a2 t 2
2 a3 d 3
3 a4 d 4
Run Code Online (Sandbox Code Playgroud)
我想要一本字典词典.
但我设法创建了以下内容:
d = {t : [1, 2], d : [3, 4]}
Run Code Online (Sandbox Code Playgroud)
通过:
d = {k: list(v) for k,v in duplicated.groupby("ColB")["ColC"]}
Run Code Online (Sandbox Code Playgroud)
我怎么能得到字典的字典:
dd = {t : {a1:1, a2:2}, d : {a3:3, a4:4}}
Run Code Online (Sandbox Code Playgroud) 如何获取最后的'n'组df.groupby()并将它们组合为数据帧.
data = pd.read_sql_query(sql=sqlstr, con=sql_conn, index_col='SampleTime')
grouped = data.groupby(data.index.date,sort=False)
Run Code Online (Sandbox Code Playgroud)
在grouped.ngroups我做了我获得组277的总数.我想结合最后12组并生成数据帧.
TL;DR:我们如何在 Pandas 中使用任何类型的聚合实现类似于Group By Roll Up 的效果?(本学期感谢@Scott Boston)
我有以下数据框:
P Q R S T
0 PLAC NR F HOL F
1 PLAC NR F NHOL F
2 TRTB NR M NHOL M
3 PLAC NR M NHOL M
4 PLAC NR F NHOL F
5 PLAC R M NHOL M
6 TRTA R F HOL F
7 TRTA NR F HOL F
8 TRTB NR F NHOL F
9 PLAC NR F NHOL F
10 …Run Code Online (Sandbox Code Playgroud) pandas ×10
pandas-groupby ×10
python ×10
dataframe ×3
dictionary ×1
matplotlib ×1
numpy ×1
python-2.7 ×1
python-3.x ×1