【发布时间】:2021-08-07 04:48:38
【问题描述】:
事情是这样的,我有这样的数据集(我们称之为 df):
id text
A1 How was your experience?: Great\nWhat did you buy?: A book\n
B1 How was your experience?: Good\nWhat did you buy?: A pen\n
C2 How was your experience?: Awful\nWhat did you buy?: A pencil\n
如您所见,这是一个包含调查的表格,我试图仅从列文本中获取答案。我的第一个挑战是尝试拆分文本,就像这样:
df['text_splitted'] = df.text.str.split('\n')
然后我会做这样的事情:
df['final_text'] = df. text_splitted.str.split(':')
但是,final_text 正在返回 NaN。刚刚发生了什么?为什么新列返回 null?有什么方法可以解决这个问题(或者更好的方法来做我想做的事情)?
【问题讨论】:
-
因为
df['text_splitted']不是字符串而是列表(split) -
@Corralien 在列表中使用
.str.split(':')是正确的,这将导致 null/NaN。然而,为了改进这个和未来的问题,您的数据应该是一段易于可复制的代码,可用于轻松构建您的数据框。请参阅 MRE - Minimal, Reproducible, Example 和 How to make good reproducible pandas examples。如果您包含预期的输出,那么您可能不仅会找到出错的地方,而且还会找到可行的解决方案。
标签: python pandas string split