我有一个数据帧(参见示例df),我需要将列拆分为2(参见示例df_exp)
import pandas as pd
#given df
df = pd.DataFrame(np.array([["Joe", 25, "40 RF"], ["Sam", 5, "RM"], ["Roy", 8, "50 SD"]]),columns=[0, 1, 2])
#expected df
df_exp = pd.DataFrame(np.array([["Joe", 25, "40 RF", 40, "RF"], ["Sam", 5, "RM", None, "RM"], ["Roy", 8, "50 SD", 50, "SD"]]),columns=[0, 1, 2, 2.1, 2.2])
我有以下功能:
def split_string(string):
if string[0].isnumeric()==True:
sep = string.split(" ",1)
return sep[0], sep[1]
else:
return None, string
我尝试应用它,但出现了一个错误,使用函数拆分列的最佳方法是什么
df[[21, 2.2]] = df.apply(lambda x: split_string(df.ix[:, 2]), axis = 1)
旧答案:
您可以使用
extract
来完成您想要的:相关问题 更多 >
编程相关推荐