我有一个列名为1的数据帧,我想运行一个if else语句,用特殊字符“-”分隔出lastname,然后像name2和name3一样输出它们,我该怎么做?你知道吗
import pandas as pd
d = {
'name1': ['Braund', 'Cummings-Johnson', 'Heikkinen-Smith'],
'name2': ['Braund', 'Cummings', 'Heikkinen'],
'name3': ['Braund', 'Johnson', 'Smith']
}
df = pd.DataFrame(d)
Pandas的设计允许您将操作应用于整个列,而不是像您所描述的那样使用for循环。您可能要寻找的一种方法是
str.split()
和expand=True
:注意,对于第二个元素,没有连字符的名称将被赋予
None
。您还可以先筛选到只使用连字符的姓氏:要重命名列,请执行以下操作:
最后,如果您真的需要完全模仿您的示例,您可以使用
ffill()
:相关问题 更多 >
编程相关推荐