2024-09-19 23:37:15 发布
网友
我在pandas dataframe中有一个列,它有如下项:
SubBrand Sam William Mathew Jonty Rodes Chris Gayle
我想创建一个新列(SubBrand_new),例如
我在用这段代码
df1["SubBrand_new"] = "".join([x[0] for x in (df1["SubBrand"].str.split())])
但没能得到我想要的东西。有人能帮忙吗?在
您需要对每一行应用一个函数,并返回一个新列及其结果。这种操作可以与.apply()方法一起应用,简单的=属性不会起作用。按照您的准则,解决方案是:
.apply()
=
df = pd.DataFrame({'Name': ['Marcus Livius Drussus', 'Lucius Cornelius Sulla', 'Gaius Julius Caesar']}) df['Abrev'] = df.Name.apply(lambda x: "".join([y[0] for y in (x.split())]))
它产生了
编辑:
我将它与另一个解决方案进行了比较,认为带有join()的{}方法将非常慢。我惊讶地发现它实际上更快。设置:
join()
N = 3000000 bank = pd.util.testing.rands_array(3,N) vec = [bank[3*i] + ' ' + bank[3*i+1] + ' ' + bank[3*i+2] for i in range(N/3)] df = pd.DataFrame({'Name': vec})
我发现:
我们可以用展开和求和来进行拆分,即
df['SubBrand'].str.split(expand=True).apply(lambda x : x.str[0]).fillna('').sum(1) 0 SWM 1 JR 2 CG dtype: object
您需要对每一行应用一个函数,并返回一个新列及其结果。这种操作可以与
.apply()
方法一起应用,简单的=
属性不会起作用。按照您的准则,解决方案是:它产生了
^{pr2}$编辑:
我将它与另一个解决方案进行了比较,认为带有}方法将非常慢。我惊讶地发现它实际上更快。设置:
join()
的{我发现:
^{4}$我们可以用展开和求和来进行拆分,即
相关问题 更多 >
编程相关推荐