在Python中,可以使用split函数将字符串拆分为列表,并使用pandas中的apply函数将其应用于整列。在这种情况下,您可以设置一个条件来检查字符串是否存在,如果不存在,返回NaN。下面是一个示例代码:
import pandas as pd
# 创建一个DataFrame
data = {'Name': ['Mary', 'John', 'Tom', 'Mia'], 'Numbers': ['1-2-3', '4-5', '6-7-8-9', '10-11']}
df = pd.DataFrame(data)
# 定义函数来拆分列
def split_column(s):
if '-' in s:
return s.split('-')
else:
return pd.NaT
# 应用函数于整列
df['Numbers'] = df['Numbers'].apply(split_column)
# 展开列表成为多个列
df[['Number1', 'Number2', 'Number3', 'Number4']] = pd.DataFrame(df['Numbers'].tolist(), index=df.index)
# 删除原有的Numbers列
df.drop('Numbers', axis=1, inplace=True)
print(df)
输出:
Name Number1 Number2 Number3 Number4
0 Mary 1 2 3 None
1 John 4 5 None None
2 Tom 6 7 8 9
3 Mia 10 11 None None
在这个例子中,我们使用'-'字符将'Numbers'列拆分成多列,并将结果存储在新的列中。在情况3中,如果没有'-',我们返回一个NaN值。
上一篇:按字符串分组和组合
下一篇:按字符串进行分组数组