我有一个这样的数据框
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)
谁能帮助我实现这一目标。
我有一个df
Id Event SeqNo
1 A 1
1 B 2
1 C 3
1 ABD 4
1 A 5
1 C 6
1 A 7
1 CDE 8
1 D 9
1 B 10
1 ABD 11
1 D 12
1 B 13
1 CDE 14
1 A 15
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种模式"ABD后跟CDE而它们之间没有事件B"例如,这个df的输出将是:
Id Event SeqNo
1 ABD 4
1 A 5
1 C 6
1 A 7
1 CDE 8
Run Code Online (Sandbox Code Playgroud)
对于单个ID,可以多次遵循此模式,我想查找所有这些ID的列表及其各自的计数(如果可能).
我有一个数据框
Id Seqno. Event
1 2 A
1 3 B
1 5 A
1 6 A
1 7 D
2 0 E
2 1 A
2 2 B
2 4 A
2 6 B
Run Code Online (Sandbox Code Playgroud)
我想要获取自每个 ID 最近出现模式 A = 2 以来发生的所有事件。序列号。是每个 ID 的序列号。输出将是
Id Seqno. Event
1 5 A
1 6 A
1 7 D
2 1 A
2 2 B
2 4 A
2 6 B
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过,
y=x.groupby('Id').apply( lambda
x:x.eventtype.eq('A').cumsum().tail(2)).reset_index()
p=y.groupby('Id').apply(lambda x:
x.iloc[0]).reset_index(drop=True)
q= x.reset_index()
s= pd.merge(q,p,on='Id')
dd= s[s['index']>=s['level_1']] …Run Code Online (Sandbox Code Playgroud) 我有2 col
Latitude Longitude
35.827085869 -95.67496156
Run Code Online (Sandbox Code Playgroud)
两者都处于浮动状态,我希望将其转换为
Latitude Longitude final
35.827085869 -95.67496156 [35.827085869,-95.67496156]
Run Code Online (Sandbox Code Playgroud)
我该如何实现?
我的数据框看起来像
ID colA
1 B
1 D
2 B
2 D
2 C
Run Code Online (Sandbox Code Playgroud)
我已经在每组中最后一次发生事件 B 后返回所有行。输出将是:
ID colA
1 D
2 D
2 C
Run Code Online (Sandbox Code Playgroud)
我试过
a = df['colA'].str.contains('B').groupby(df['ID'])
b = df[(a.transform('sum') - a.cumsum()).eq(0)]
Run Code Online (Sandbox Code Playgroud)
到目前为止它运行良好。我只是想知道是否有其他方法可以实现这一目标?