【发布时间】:2018-09-26 11:42:08
【问题描述】:
输入数据框的代码是
import pandas as pd
df = pd.DataFrame([{'Column1': '((CC ) + (A11/ABC/ZZ) + (!AAA))','Column2': 'XYZ + XXX/YYY'}])
输入数据框:-
+---------------------------------+---------------------------------+
| Column1 | Column2 +
+---------------------------------+---------------------------------+
| ((CC ) + (A11/ABC/ZZ) + (!AAA)) | XYZ + XXX/YYY |
+---------------------------------+---------------------------------+
输入列表:-
list = [AAA,BBB,CCC]
条件:-
'+' should remain as such (similar to AND condition)
'/' means split the data into multiple cells (similar to OR condition)
'!' means replace with other elements in the corresponding list (similar to NOT condition)
因为 !符号,行变为
+------------------------------------+---------------------------------+
| Column1 | Column2 +
+------------------------------------+---------------------------------+
| ((CC ) + (A11/ABC/ZZ) + (BBB/CCC)) | XYZ + XXX/YYY |
+------------------------------------+---------------------------------+
请帮助我使用 Pandas 将单行拆分为多行,如下所示
+---------------------------------+---------------------------------+
| Column1 | Column2 +
+---------------------------------+---------------------------------+
| CC + A11 + BBB | XYZ + XXX |
+---------------------------------+---------------------------------+
| CC + ABC + BBB | XYZ + XXX |
+---------------------------------+---------------------------------+
| CC + ZZ + BBB | XYZ + XXX |
+---------------------------------+---------------------------------+
| CC + A11 + CCC | XYZ + XXX |
+---------------------------------+---------------------------------+
| CC + ABC + CCC | XYZ + XXX |
+---------------------------------+---------------------------------+
| CC + ZZ + CCC | XYZ + XXX |
+---------------------------------+---------------------------------+
| CC + A11 + BBB | XYZ + YYY |
+---------------------------------+---------------------------------+
| CC + ABC + BBB | XYZ + YYY |
+---------------------------------+---------------------------------+
| CC + ZZ + BBB | XYZ + YYY |
+---------------------------------+---------------------------------+
| CC + A11 + CCC | XYZ + YYY |
+---------------------------------+---------------------------------+
| CC + ABC + CCC | XYZ + YYY |
+---------------------------------+---------------------------------+
| CC + ZZ + CCC | XYZ + YYY |
+---------------------------------+---------------------------------+
【问题讨论】:
-
结果行的排序顺序重要吗?
-
并非如此。但是如果我们有相同的顺序会更好。
标签: python pandas dataframe split explode