簡體   English   中英

通過使用 Pandas Python 合並列來填充空白區域

[英]Fill in empty space by merging columns using Pandas Python

我是 Python 菜鳥。 我有一個非結構化文本文件,我試圖將其捕獲到 dataframe 並導出到 excel。我需要合並 38 到 36、45 到 43 和 79 到 78,用合並列上的數據填充空白區域。

虛擬數據集

0 5個 36 38 43 45 78 79
1個 一種 01JUN2022 1.2 1.2
2個 C 01JUN2022 1.4 1.4
3個 01JUN2022 1.5 F 1.6
4個 G 01JUN2022 1.7 H 1.7
5個 01JUN2022 1.4 1.8
6個 01JUN2022 1.7 大號 1.3
1個 一種 01JUN2022 1.2 1.2
2個 C 01JUN2022 1.4 1.4
3個 01JUN2022 1.5 F 1.6
4個 G 01JUN2022 1.7 H 1.7
5個 01JUN2022 1.4 1.8
6個 01JUN2022 1.7 大號 1.3

必填 output

0 5個 36 43 79
1個 一種 01JUN2022 1.2 1.2
2個 C 01JUN2022 1.4 1.4
3個 01JUN2022 1.5 F 1.6
4個 G 01JUN2022 1.7 H 1.7
5個 01JUN2022 1.4 1.8
6個 01JUN2022 1.7 大號 1.3
1個 一種 01JUN2022 1.2 1.2
2個 C 01JUN2022 1.4 1.4
3個 01JUN2022 1.5 F 1.6
4個 G 01JUN2022 1.7 H 1.7
5個 01JUN2022 1.4 1.8
6個 01JUN2022 1.7 大號 1.3

首先將''轉換為NaN ,如下所示

df = df.replace(r'^\s*$', np.nan, regex=True)

然后可以使用pandas.Series.combine_first

df['36'] = df['36'].combine_first(df['38'])
df['43'] = df['43'].combine_first(df['45'])
df['79'] = df['79'].combine_first(df['78'])

[Out]:
    id  0          5   36   38 43   45   78   79
0    1  A  01JUN2022  1.2  1.2  B    B  NaN  1.2
1    2  C  01JUN2022  1.4  1.4  D    D  NaN  1.4
2    3  E  01JUN2022  1.5  NaN  F  NaN  1.6  1.6
3    4  G  01JUN2022  1.7  NaN  H  NaN  1.7  1.7
4    5  I  01JUN2022  1.4  NaN  J  NaN  1.8  1.8
5    6  K  01JUN2022  1.7  NaN  L  NaN  1.3  1.3
6    1  A  01JUN2022  1.2  1.2  B    B  NaN  1.2
7    2  C  01JUN2022  1.4  1.4  D  NaN  1.4  1.4
8    3  E  01JUN2022  1.5  1.5  F  NaN  1.6  1.6
9    4  G  01JUN2022  1.7  NaN  H  NaN  1.7  1.7
10   5  I  01JUN2022  1.4  NaN  J    J  NaN  1.8
11   6  K  01JUN2022  1.7  NaN  L  NaN  NaN  1.3

最后,可以刪除不需要的列或 select 顯示如下

df = df[['0', '5', '36', '43', '79']]

[Out]:

    0          5   36 43   79
0   A  01JUN2022  1.2  B  1.2
1   C  01JUN2022  1.4  D  1.4
2   E  01JUN2022  1.5  F  1.6
3   G  01JUN2022  1.7  H  1.7
4   I  01JUN2022  1.4  J  1.8
5   K  01JUN2022  1.7  L  1.3
6   A  01JUN2022  1.2  B  1.2
7   C  01JUN2022  1.4  D  1.4
8   E  01JUN2022  1.5  F  1.6
9   G  01JUN2022  1.7  H  1.7
10  I  01JUN2022  1.4  J  1.8
11  K  01JUN2022  1.7  L  1.3

這給出了所需的 output。


筆記:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM