首页 > 解决方案 > Pandas Dataframe 查找和子字符串

问题描述

我想根据 str.find() 的结果对数据框的列进行子串化

我找到了每行字符串的起点,并将其存储在一个新列中

orders["test"]= orders["meta_data"].str.find("utm_source:").astype(int)

现在我想在发现之后删掉 20 个字符:

orders["test2"] = orders["meta_data"].str[orders["test"] : orders["test"]+20]

这不起作用,我猜是因为 orders["test"] 是一个系列。但我不知道如何从正确的行中提取该特定数字

现在我得到 NaN 值,但预期的输出将是 20 个字符的字符串。

干杯,E。

标签: pythonpandasdataframe

解决方案


使用DataFrame.applywithaxis=1和 lambda 函数处理每行:

orders["test2"] = orders.apply(lambda x: x["meta_data"][x["test"] : x["test"]+20], axis=1)

推荐阅读