Pandas 如何將具有多個條目的行拆分為單獨的行?

Ultra10K5K100K

我有以下數據幀:

df
Out[69]:
    A                          B                  C
0   Banana | Apple | Banana    No | Yes | Yes     Yes | No | Yes
1   Banana                     No                 Yes
2   Banana                     No                 No
3   Apple | Banana             Yes | Yes          No | No
4   Apple                      Yes                Yes

頂行(索引 0)和第四行(索引 3)分別代表三個和兩個條目。我想編寫的代碼可以將具有多個條目(由 分隔|)的每一行拆分為單獨的行,因此每個條目都有一行。

在本例中,我想生成以下 DataFrame:

    A       B    C
0   Banana  No   Yes
1   Apple   Yes  No
2   Banana  Yes  Yes
3   Banana  No   Yes
4   Banana  No   No
5   Apple   Yes  No
6   Banana  Yes  No
7   Apple   Yes  Yes

或者:

    A       B    C
0   Banana  No   Yes
0   Apple   Yes  No
0   Banana  Yes  Yes
1   Banana  No   Yes
2   Banana  No   No
3   Apple   Yes  No
3   Banana  Yes  No
4   Apple   Yes  Yes

我查看了該explode函數,但看起來它希望行採用列表格式。

這是我運行時發生的情況print(df.head().to_dict())

{'A': {0: 'Banana | Apple | Banana', 1: 'Banana', 2: 'Banana', 3: 'Apple | Banana', 4: 'Apple'}, 'B': {0: 'No | Yes | Yes', 1: 'No', 2: 'No', 3: 'Yes | Yes', 4: 'Yes'}, 'C': {0: 'Yes | No | Yes', 1: 'Yes', 2: 'No', 3: 'No | No', 4: 'Yes'}}
用戶17242583

您仍然可以使用explode,只需按以下方式拆分字符串|

df = df.apply(lambda col: col.str.split(r'\s*\|\s*').explode())

輸出:

>>> df
        A    B    C
0  Banana   No  Yes
0   Apple  Yes   No
0  Banana  Yes  Yes
1  Banana   No  Yes
2  Banana   No   No
3   Apple  Yes   No
3  Banana  Yes   No
4   Apple  Yes  Yes

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

將單行拆分為多個唯一行 Pandas Permutations

如何使用 Pandas 將一行中不同類型的數據拆分為單獨的列

在 Pandas 上將 DataFrame 拆分為多個 .txt

將單元格拆分為多行並在 Pandas 中進行分組計數

如何在 Pandas 中將兩個單獨的單元格合併為一個奇異的組合值

使用 Pandas 將兩個獨立單元格中的值轉換為一個單元格

Pandas to_json 在單獨的行中

如何將 Pandas 字符內爆(返回原始)為由 NaN 行分隔的單詞?

根據列的值將 Pandas 數據幀拆分為多個數據幀

pandas 數據框迭代作為列表的單元格值並將每個元素與其他單元格進行比較

如何將具有單個 csv 列的 Pandas 數據框插入 MySQL 數據庫

findall 的 Pandas 結果為單行

如何從滿足多個條件的數據框中刪除特定行(python pandas)?

具有不同閾值的 Pandas 數據框上的多個 if 條件

Pandas DataFrame 按列標題將編號列拆分為行

python pandas將唯一行轉換為具有各自數據的新列

將具有多索引的 Pandas 數據幀轉換為字典列表

使用 Pandas 在多個子圖行中繪製條形圖

如何在pdf中將多個圖形保存為單獨的頁面?

在 Pandas 中將一列中的字符串擴展為不同的單獨列

如果列是可變長度的字符串,如何將 Pandas DataFrame 列拆分為多列?

Pandas 系列將值拆分為列

如何在 Pandas 中選擇包含一個或多個關鍵字(從現有列表中)的行?

轉換為數字時如何將單個字符列拆分為多列?

如何使用正則表達式將多個單詞作為單個條目匹配?

Pandas 將行作為新列加入

Pandas:轉置不會將行轉為列

Pandas 數據框將行轉換為列

pandas:基於多列將行附加到相似行下的另一個數據框