小编Mar*_*ary的帖子

根据两个数据框的最小值创建一个数据框 pandas python

我有两个不同大小的数据框。仅当第二个数据帧的值小于第一个数据帧的值时,我才想用第二个数据帧的值替换第一个数据帧的值。换句话说,我想找到每个位置的两个数据帧的最小值,以匹配两个数据帧的索引。

df1:

      A     B     C   
0     0     12    7  
1     15    20    0  
2     7     0     3  
Run Code Online (Sandbox Code Playgroud)

df2:

      A     B     C   
1     4     25    8  
2     0     0     5  
Run Code Online (Sandbox Code Playgroud)

结果 df:

      A     B     C   
0     0     12    7  
1     4     20    0  
2     0     0     3 
Run Code Online (Sandbox Code Playgroud)

python minimum pandas

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

使用group by并使用前一行值应用lambda函数

我有以下数据框,每个日期,每小时,我想创建一个新列"结果",这样如果列"B"中的值> = 0,那么使用A列中的值; 否则使用列B中0和前一行值之间的最大值

Date    Hour    A     B    result
1/1/2018    1    5     95    5
1/1/2018    1    16    79    16
1/1/2018    1    85   -6     79
1/1/2018    1    12   -18    0
1/1/2018    2    17    43    17
1/1/2018    2    17    26    17
1/1/2018    2    16    10    16
1/1/2018    2    142  -132   10
1/1/2018    2    10   -142   0
Run Code Online (Sandbox Code Playgroud)

我尝试按日期和小时进行分组,然后使用shift应用lambda函数,但是我收到了一个错误:

df['result'] = df.groupby(['Date','Hour']).apply(lambda x: x['A'] if x['B'] >= 0 else np.maximum(0, x['B'].shift(1)), axis = 1)
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

3
推荐指数
1
解决办法
230
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

minimum ×1