【发布时间】:2017-06-25 18:54:05
【问题描述】:
我刚刚开始使用 Pandas,我发现很难像对待数据帧一样对待数据帧。时不时地,如果不遍历行,我就无法弄清楚如何做某事。
例如,我有一个包含预算信息的数据框。我想从“简短描述”中提取“供应商”,这是三种可能形式之一的字符串:
- blah blah blah 到 供应商名称
- blah blah blah 在供应商名称
- 供应商名称
我可以使用以下代码做到这一点,但我不禁觉得它没有正确使用 Pandas。有什么改进的想法吗?
for i, row in dataframe.iterrows():
current = dataframe['short description'][i]
if 'to' in current:
point_of_break = current.index('to') + 3
dataframe['vendor'][i] = current[point_of_break:]
elif 'at' in current:
point_of_break = current.index('at') + 3
dataframe['vendor'][i] = current[point_of_break:]
else:
dataframe['vendor'][i] = current
【问题讨论】:
-
您可以尝试使用正则表达式 - 查看pandas.pydata.org/pandas-docs/stable/text.html 了解支持正则表达式的方法。
-
每一行是否包含引号中的供应商名称,或者您只是使用引号来指示供应商名称在每个字符串中的位置?
-
我不是这个意思!我的错。我将更新原始问题以使其更清晰。