我有两个不同大小的数据框。仅当第二个数据帧的值小于第一个数据帧的值时,我才想用第二个数据帧的值替换第一个数据帧的值。换句话说,我想找到每个位置的两个数据帧的最小值,以匹配两个数据帧的索引。
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) 我有以下数据框,每个日期,每小时,我想创建一个新列"结果",这样如果列"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)