您可以使用apply
函数遍历一个pandas Series,并在每个字符串的第一个空格处拆分为新的列。以下是一个示例代码:
import pandas as pd
# 创建示例Series
data = pd.Series(['1234 abc', '5678 def', '91011 ghi'])
# 定义函数,在第一个空格处拆分字符串为新的列
def split_string(s):
if s[0] != '1': # 如果字符串的第一个位置不是'1'
return pd.Series(s.split(' ', 1)) # 在第一个空格处拆分为新的列
else:
return pd.Series([s]) # 返回原字符串
# 应用函数到Series上
new_columns = data.apply(split_string)
# 将新的列添加到原始DataFrame
data = pd.concat([data, new_columns], axis=1)
# 对新的列进行重命名
data.rename(columns={0: 'Column1', 1: 'Column2'}, inplace=True)
print(data)
输出结果:
0 Column1 Column2
0 1234 abc 1234 abc NaN
1 5678 def 5678 def NaN
2 91011 ghi 91011 ghi NaN
在这个示例中,我们首先创建了一个示例的Series data
。然后,我们定义了一个名为split_string
的函数,它接受一个字符串作为输入,并检查字符串的第一个位置是否为'1'。如果不是,则在第一个空格处拆分字符串为新的列,并返回新的Series。如果第一个位置是'1',则返回原字符串作为Series。
接下来,我们使用apply
函数将split_string
函数应用到Series中的每个元素上,并将返回的新Series存储在new_columns
变量中。
最后,我们使用concat
函数将原始Series和新的列连接起来,并使用rename
函数对新的列进行重命名。最终得到的结果存储在data
变量中,并打印出来。