我尝试在 R 中的 a 的 2018 到 2021 行中按行不等于 0 的两个值之间插入 0 值。data.table示例数据如下所示df1:
ID string1 2018 2019 2020 2021 string2
1: a1 x2 3 3 0 4 si
2: a2 g3 5 5 4 0 q2
3: a3 n2 11 0 0 3 oq
4: a4 m3 3 0 9 8 mx
5: a5 2w 9 1 6 5 ix
6: a6 ps2 2 4 7 4 p2
7: a7 kg2 6 0 9 6 2q …Run Code Online (Sandbox Code Playgroud) 我有两个 DataFrame df1 (mxn) 和(mx1) 作为时间序列,我想计算 和df2 之间每列的差异, 看起来像。df1df2df3
import pandas as pd
df1 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'],
'01K W':[1.2, 0.4, 0.2, -0.4],
'02K W':[3.5, 3.2, 'nan', 'nan'],
'03K W':[-1, -2.3, 0.3, 2.4],
'04K W':[1.5, 2.6, 3.2, 4.2]})
df2 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'],
'K W':[1, 1.5, 1.2, 0.8]})
df3 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'],
'01K W':[0.2, 1.1, 1, 1.2],
'02K W':[2.5, 1.7, 'nan', 'nan'],
'03K W':[2, 3.8, 0.9, 1.6],
'04K W':[0.5, …Run Code Online (Sandbox Code Playgroud) DataFrames df1我尝试只保留and中包含的日期索引df2,并使用此条件df1_new和创建df2_new。有没有一种无需两步选择的简单方法?
这是一个简单的例子:
df1:
04B 06B
Date
2021-01-01 0.3 3.5
2021-01-02 -2.3 -0.1
2021-01-03 0.3 2.1
2021-01-04 -0.4 1.2
df2:
01K 02K
Date
2021-01-02 3.2 3.0
2021-01-04 2.2 -2.1
2021-01-05 4.3 -4.1
df1_new:
04B 06B
Date
2021-01-02 -2.3 -0.1
2021-01-04 -0.4 1.2
df2_new:
01K 02K
Date
2021-01-02 3.2 3.0
2021-01-04 2.2 -2.1
Run Code Online (Sandbox Code Playgroud)
这里是可重复性的代码:
import pandas as pd
df1 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'],
'04B':[0.3, -2.3, 0.3, -0.4],
'06B':[3.5, -0.1, 2.1, 1.2]})
df1 …Run Code Online (Sandbox Code Playgroud)