# Split single column into two columns use apply()
df[['First Name', 'Last Name']] = df["Student_details"].apply(lambda x: pd.Series(str(x).split(",")))
print(df)
1-为什么当我将代码更改为.apply(lambda x: str(x).split("," , expand=True))
时,我会得到一个错误,即“扩展是拆分函数的无效参数”
2-为什么我必须使用pd.Series(),而str.split()的默认返回值是Series
3-pd.Series()如何在返回DF的同时返回一个序列-这里-
我试着写扩展和使用它正常,但它没有工作
这是DF
import pandas as pd
import numpy as np
technologies = {
'Student_details':["Pramodh_Roy", "Leena_Singh", "James_William", "Addem_Smith"],
'Courses':["Spark", "PySpark", "Pandas", "Hadoop"],
'Fee' :[25000, 20000, 22000, 25000]
}
df = pd.DataFrame(technologies)
print(df)
2条答案
按热度按时间iszxjhcz1#
我不明白你想要什么...是关于上面的解决方案吗?还是你真的想知道为什么#1抛出一个错误?
编辑1:您所引用的str类型的split函数不存在expand参数,因为这是python的str类型。已经为panda中的Series的split函数编写了expand参数。
编辑2:关于第三个问题:正如你在我的建议中所看到的,我甚至没有使用pd.Series函数,但是df[“Student_details”]当然是一个序列。我的答案中的关键是,“expand”参数在这里返回一个DF,其中包含拆分结果所需的列数。因此,如果其中一个名称是“a_B_c_d”,我将得到一个总共包含四列的df。
wpx232ag2#
仅供参考,这确实有效:
输出: