【发布时间】:2021-01-01 05:14:22
【问题描述】:
我有一个名为 X 的数据框
X 有 3 列(Uni、Sub、Colors)
Uni 是字符串,Sub 是字符串
但颜色是一个数组字符串
X 中的数据如下所示
Uni Sub Colours
----- ------ -------
Melb Math (Red, Blue, Green)
Melb English (Yellow, Blue, Brown, White)
Sydney Math (Green, Pink, Red, White, Black)
Sydney Art (White, Pink)
Sydney Med (Yellow, Red, Pink, Brown, White, Black, Green)
Ottawa Math (Blue, Yellow)
Ottawa Physics (Red, Orange, Black)
我正在尝试将这些列连接到一个字符串中,以便将其传递给 SQL 存储过程
我想要的结果应该是这样的
Melb;Math;Red, Blue, Green|Melb;English;Yellow, Blue, Brown, White|Sydney;Math;Green, Pink, Red, White, Black| ...
其中的列用分号分隔;和由条分隔的行 |
我有这个代码
MyString = X[['Uni', 'Sub', 'Colours']].apply(lambda x: ';'.join(x), axis = 1)
但我遇到了这个错误
TypeError:序列项 2:预期的 str 实例,找到元组
所以我改成了这个
X["Codes"] = ",".join(map(str, X["Codes"]))
MyString = X[['PtsID', 'VisitID', 'Codes']].apply(lambda x: ';'.join(x), axis = 1)
但最终结果不是我想要的,因为它是一个 列表,它看起来像这样
Melb Math Red\n1 Blue\n2 Green\n3
Melb English Yellow\n1 Blue\n2 Brown\n3 White\n4
.
.
.
知道如何获得我想要的单个字符串格式吗?
【问题讨论】: