我正在玩Whatsapp的历史聊天。 我想将消息列拆分为两列 - 时间和消息。
为了用分隔符“ - ”拆分两个,我尝试了:
history['message'] = pd.DataFrame([line.split(" - ",1) for line in history['message']])
但历史['消息']成为唯一的时间。
我不明白为什么,因为line.split(“ - ”,1)假设最多给出2个元素的列表。
答案 0 :(得分:4)
我认为您需要str.split
与expand=True
一起返回DataFrame
:
history = pd.DataFrame({'message':['a - b','c - d - r']})
history[['a','b']] = history['message'].str.split(' - ', n=1, expand=True)
print (history)
message a b
0 a - b a b
1 c - d - r c d - r
如果没有NaNs
使用:
history[['a','b']] = pd.DataFrame([line.split(" - ", 1) for line in history['message']])
对我来说,返回错误:
history['a'] = pd.DataFrame([line.split(" - ", 1) for line in history['message']])
print (history)
ValueError:传递的项目数量错误2,展示位置意味着1
因此,如果您正常工作,请尝试检查分隔符,因为它似乎没有split
:
样品:
history['a'] = history['message'].str.split('^', n=1, expand=True)
print (history)
message a
0 a - b a - b
1 c - d - r c - d - r