Python 将字符串变量分解为多列

Python 将字符串变量分解为多列,python,pandas,string,dataframe,Python,Pandas,String,Dataframe,在我目前正在研究的一些数据框架中,我有一个列(“行为”),其中每个条目都是一个字符串,描述了学生在一段时间内丢失的学费: 字符串中每两个空格对应一段时间。 例如,如果我们有字符串 “01 V” 这意味着,学生在监控其付款的三个时期内,按时支付了前两个,但跳过了最后一个 最近的付款对应于字符串的前两个元素(包括空格),下两个空格对应于第二个,依此类推 下面是数据框前三个条目的示例 pd.DataFrame({'subject':['S1', 'S2', 'S3'],

在我目前正在研究的一些数据框架中,我有一个列(“行为”),其中每个条目都是一个字符串,描述了学生在一段时间内丢失的学费:

字符串中每两个空格对应一段时间。 例如,如果我们有字符串

“01 V”

这意味着,学生在监控其付款的三个时期内,按时支付了前两个,但跳过了最后一个

最近的付款对应于字符串的前两个元素(包括空格),下两个空格对应于第二个,依此类推

下面是数据框前三个条目的示例

pd.DataFrame({'subject':['S1', 'S2', 'S3'], 
              'behavior': [' V V V010101--0101', ' V V----01', '070707 V V--']})

  subject            behavior
0      S1   V V V010101--0101
1      S2           V V----01
2      S3        070707 V V--

我需要做的是将字符串分解成几个列,每个列对应一笔付款。对于本例,这意味着创建9个附加列(付款1、付款2等),因为行为列的最长字符串包含有关9个付款的信息


我一直试图解决这个问题,但似乎找不到解决办法。你能帮我吗?

我分两步完成,第一步是把它列成一个列表(每2个字符拆分一次)

然后,如果你想要的话,你可以把它分成几列

def splitme(s, n):
    aslist = [s[i:i+n] for i in range(0, len(s), n)]
    return aslist
    
# new column is a list of every n=2 characters
df['as_list'] = df['behavior'].apply(lambda x: splitme(str(x), 2))

# now break into columns
pd.DataFrame(df["as_list"].to_list())