0
我dataframes的
部分看起來是這樣的:填充細胞與大熊貓索引間隔柱
df1 df2
scale col1 col2 col1 col2
1 item1 NaN item1 3
2 item1 NaN item2 2
3 item1 NaN ...
4 item1 NaN
5 item1 NaN
6 item1 6
7 item1 NaN
8 item1 NaN
9 item1 NaN
10 item1 NaN
11 item1 NaN
12 item1 NaN
13 item1 NaN
14 item1 NaN
15 item1 NaN
1 item2 NaN
2 item2 NaN
3 item2 NaN
4 item2 NaN
5 item2 NaN
6 item2 NaN
7 item2 NaN
8 item2 8
9 item2 NaN
10 item2 NaN
11 item2 NaN
12 item2 NaN
13 item2 NaN
14 item2 NaN
15 item2 NaN
...
我需要做的每一個獨特的價值以下在df1
col1
列(原數據幀有約100):
查找的
df1
col2
的第一個值不爲空。並基於價值在
df2
col1
柱和柱的df1
col1
平等,從df2
col2
列值插入的df1
col2
列。col2
的df2
中的值也將是col2
的df1
必須填寫的時間間隔。
下面是我的代碼,但它增加了一個值只有一次:
df_test = df1[df1['col2'].notnull()] # find non-empty values
df_test = df_test.set_index(['col1'])
df2 = df2.set_index(['col1'])
df_test['scale'] = df_test['scale'] + df2['col2']
df_test['col2'] = df2['col2']
df_test = df_test.reset_index()
df1 = df1.set_index(['col1', 'scale']).fillna(df_test.set_index(['col1', 'scale'])).reset_index()
結果看起來是這樣的:
scale col1 col2
1 item1 NaN
2 item1 NaN
3 item1 NaN
4 item1 NaN
5 item1 NaN
6 item1 6
7 item1 NaN
8 item1 NaN
9 item1 3
10 item1 NaN
11 item1 NaN
12 item1 NaN
13 item1 NaN
14 item1 NaN
15 item1 NaN
1 item2 NaN
2 item2 NaN
3 item2 NaN
4 item2 NaN
5 item2 NaN
6 item2 NaN
7 item2 NaN
8 item2 8
9 item2 NaN
10 item2 2
11 item2 NaN
12 item2 NaN
13 item2 NaN
14 item2 NaN
15 item2 NaN
...
但他一定是這樣:
scale col1 col2
1 item1 NaN
2 item1 NaN
3 item1 NaN
4 item1 NaN
5 item1 NaN
6 item1 6
7 item1 NaN
8 item1 NaN
9 item1 3
10 item1 NaN
11 item1 NaN
12 item1 3
13 item1 NaN
14 item1 NaN
15 item1 3
1 item2 NaN
2 item2 NaN
3 item2 NaN
4 item2 NaN
5 item2 NaN
6 item2 NaN
7 item2 NaN
8 item2 8
9 item2 NaN
10 item2 2
11 item2 NaN
12 item2 2
13 item2 NaN
14 item2 2
15 item2 NaN
...
我將不勝感激任何建議!