我正在尝试将以下列转换为新行:
身份证 | 价格 |
---|---|
001 | [“三月:59”,“四月:64”,“五月:62”] |
002 | [“一月:55”等] |
到
id | 日期 | 价格 |
---|---|---|
001 | 三月 | 59 |
001 | 四月 | 64 |
001 | 五月 | 62 |
002 | 一月 | 55 |
日期:价格对不以传统字典格式存储,如以下解决方案:
我设法将键:值对放入单独的行中,例如:
身份证 | 价格 |
---|---|
001 | 三月:59 |
001 | 四月:64 |
并且可以使用字符串操作将它们分成两列,但这感觉效率很低,而不是实际使用键:值对。有人可以帮忙吗?
尝试:
# apply ast.literal_eval if necessary:
from ast import literal_eval
df["Prices"] = df["Prices"].apply(literal_eval)
df = df.explode("Prices")
df[["date", "price"]] = df.pop("Prices").str.split(":", n=1, regex=False).to_list()
print(df)
打印:
Id date price
0 1 March 59
0 1 April 64
0 1 May 62
1 2 Jan 55