小编No_*_*ody的帖子

过滤数据框并根据给定条件添加新列

我有一个这样的数据框

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)

谁能帮助我实现这一目标。

python numpy python-3.x pandas pandas-groupby

13
推荐指数
4
解决办法
320
查看次数

寻找具有条件的顺序模式

我有一个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的列表及其各自的计数(如果可能).

python numpy data-manipulation dataframe pandas

8
推荐指数
1
解决办法
208
查看次数

选择 pandas 中条件为真的所有行

我有一个数据框

 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)

python group-by python-3.x pandas pandas-groupby

5
推荐指数
1
解决办法
892
查看次数

连接两列并获取新列

我有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)

我该如何实现?

python python-2.7 python-3.x pandas

4
推荐指数
1
解决办法
47
查看次数

获取 Pandas 中最后一次出现特定值后的所有行

我的数据框看起来像

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)

到目前为止它运行良好。我只是想知道是否有其他方法可以实现这一目标?

python group-by dataframe pandas pandas-groupby

2
推荐指数
1
解决办法
771
查看次数