2024-10-01 02:30:44 发布
网友
出于性能原因,我想一次填写两列。 源列中的示例值为“42844-News-BENL”。我需要摘录'42844'和'News'。可以忽略其他值
df["_site_id"], df["_site_name"], rest = df["website"].apply(lambda x: x.split(" - ", 2))
我测试了这段代码,得到了一个“ValueError:太多的值无法解包(预期为3)”
让我们做str.split
str.split
df["website"].str.split(" - ", 2, expand=True) #df=df.join(df["website"].str.split(" - ", 2, expand=True).rename(columns={0:'_site_id', 1:'_site_name'}))
对于熊猫中的矢量化字符串操作,您有str。因此,您可以使用Series.str.split。此外,为了使此分配生效,您必须首先将结果列表“展开”为n个新列,因此设置expand=True:
str
Series.str.split
n
expand=True
df["_site_id"], df["_site_name"], _ = df.website.str.split(' - ', 2, expand=True)
这也可以通过在列列表上编制索引和在lhs上显示以下内容来实现:
*df[['_site_id', '_site_name']], _ = df.website.str.split(' - ', 2, expand=True)
注意:要使多个赋值有效,分割website的结果必须是3列,否则您将得到一个ValueError表示没有足够的值进行解压缩
website
3
ValueError
让我们做
str.split
对于熊猫中的矢量化字符串操作,您有
str
。因此,您可以使用Series.str.split
。此外,为了使此分配生效,您必须首先将结果列表“展开”为n
个新列,因此设置expand=True
:这也可以通过在列列表上编制索引和在lhs上显示以下内容来实现:
注意:要使多个赋值有效,分割
website
的结果必须是3
列,否则您将得到一个ValueError
表示没有足够的值进行解压缩相关问题 更多 >
编程相关推荐