【发布时间】:2021-11-06 08:01:25
【问题描述】:
我有一个如下所示的数据框:
Statement Standard A Standard B Standard C
Statement 1 A1 B-1.2.3, 1.2.4
Statement 1 A1 C2, 3, 4
Statement 2 A2 C5
Statement 3 A3 B-1.2.5
Statement 3 A3 C6,7
{
"Statement": ["Statement 1", "Statement 1", "Statement 2",
"Statement 3", "Statement 3",],
"Standard A": ["A1", "A1", "A2", "A3", "A3"],
"Standard B": ["B-1.2.3, 1.2.4", np.nan, np.nan, "B-1.2.5", np.nan],
"Standard C": [np.nan, "C2, 3, 4 ", "C5 ", np.nan, "C6,7"],
}
基本上我需要做的就是把它转换成这个:
Statement Standard A Standard B Standard C
Statement 1 A1 B-1.2.3 C2
Statement 1 A1 B-1.2.4 C3
Statement 1 A1 C4
Statement 2 A2 C5
Statement 3 A3 B-1.2.5 C6
Statement 3 A3 C7
为了帮助澄清,有 3 个标准。每个标准都有许多映射到“声明”的标准“参考”。
所以标准 B-1.2.3 和 B-1.2.4(来自标准 B)和 C2、C3 和 C4(来自标准 C)映射到声明 1。A1(来自标准 A ) 也可以,但标准 A 已经完全映射。
现在我有三个问题:
-
标准前缀(“B-”和“C”)仅应用于行中的第一个引用。每个标准参考都需要前缀。 (可选)
-
各个标准引用(在标准内)列在同一行(带有','分隔符),并且每个引用都需要在自己的行中
-
标准是交错的(即 B-1.2.3 和 C2 可以在同一行,但它们不是)
我已尝试在此处应用解决方案:Split cell into multiple rows in pandas dataframe,但我的列有不同的长度,因此我收到说明该事实的错误。
我也尝试过调整这个解决方案,也没有成功:Pandas dataframe: how do I split one row into multiple rows by multi-value column?
我不相信这些解决方案中的任何一个都适用。我可能找错树了。
我现在很迷茫。
【问题讨论】:
-
您应该编辑您的问题以显示您尝试过的内容以及遇到的问题。您还应该描述
Statement C是如何分布到输出数据帧中的。 -
应该是
Standard C,我的错。我已对其进行了修改,并添加了更多信息。
标签: python pandas data-analysis