我在DataFrame中有一个包含值的列:
[1, 1, -1, 1, -1, -1]
Run Code Online (Sandbox Code Playgroud)
我该如何将它们分组呢?
[1,1] [-1] [1] [-1, -1]
Run Code Online (Sandbox Code Playgroud) 我有一个数据帧:
Type: Volume:
Q 10
Q 20
T 10
Q 10
T 20
T 20
Q 10
Run Code Online (Sandbox Code Playgroud)
并且我想将类型T组合到一行,并且只有当两个(或更多)Ts是连续的时才加总音量
即:
Q 10
Q 20
T 10
Q 10
T 20+20=40
Q 10
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?会DataFrame.groupby工作吗?
我有一个从 Pandas 延伸出来的问题:条件滚动计数。我想在数据框中创建一个新列,反映满足多个条件的累积行数。
使用以下示例和来自 stackoverflow 25119524 的代码
import pandas as pd
l1 =["1", "1", "1", "2", "2", "2", "2", "2"]
l2 =[1, 2, 2, 2, 2, 2, 2, 3]
l3 =[45, 25, 28, 70, 95, 98, 120, 80]
cowmast = pd.DataFrame(list(zip(l1, l2, l3)))
cowmast.columns =['Cow', 'Lact', 'DIM']
def rolling_count(val):
if val == rolling_count.previous:
rolling_count.count +=1
else:
rolling_count.previous = val
rolling_count.count = 1
return rolling_count.count
rolling_count.count = 0 #static variable
rolling_count.previous = None #static variable
cowmast['xmast'] = cowmast['Cow'].apply(rolling_count) #new …Run Code Online (Sandbox Code Playgroud) 这是我的输入数据框:
type
a
a
a
a
a
b
b
a
a
a
Run Code Online (Sandbox Code Playgroud)
这是我的预期输出:
type, id
a , 1
a , 2
a , 3
a , 4
a , 5
b , 5
b , 5
a , 6
a , 7
a , 8
Run Code Online (Sandbox Code Playgroud)
我需要ID基于'type'列生成列。我有两种类型'a'&'b'..,只要'a'我想增加ID。如果'b',请保持先前状态'a' ID。如何在Pandas数据框中执行此操作?