Python 需要使用逗号分隔符拆分数据帧列

Python 需要使用逗号分隔符拆分数据帧列,python,dataframe,split,Python,Dataframe,Split,我有一个数据框列,比如 comments misha,park@gmail.com,233432 ammesh,,3545657 ",,," neta,ne34@gmail.com,, 我想使用逗号分割,当两个逗号同时出现时,我需要将该列填充为NA。当出现三个逗号时,需要将所有三列填写为NA(如第三行) 使用的代码: b = a.join(a['comments'].str.split(',', expand=True).add_prefix('comments')).fi

我有一个数据框列,比如

comments
misha,park@gmail.com,233432
ammesh,,3545657
",,,"
neta,ne34@gmail.com,,
我想使用逗号分割,当两个逗号同时出现时,我需要将该列填充为NA。当出现三个逗号时,需要将所有三列填写为NA(如第三行)

使用的代码:

b = a.join(a['comments'].str.split(',', expand=True).add_prefix('comments')).fillna(np.nan)

如果您找不到更具python风格的东西,那么下面的代码应该可以正常工作。我试图涵盖“,”外观的所有场景:

a['name']=''
a['mail']=''
a['phone']=''

for i in range(len(a)):
    if ',,' not in a.comments.iloc[i] and ',,,' not in a.comments.iloc[i]:
        s=a.comments.iloc[i].split(',')
        a['name'].iloc[i]=s[0]
        a['mail'].iloc[i]=s[1]
        a['phone'].iloc[i]=s[2]
    elif ',,,' in a.comments.iloc[i]:
        a['name'].iloc[i]=np.nan
        a['mail'].iloc[i]=np.nan
        a['phone'].iloc[i]=np.nan   
    else:
        s=a.comments.iloc[i].split(',')
        if len(s)==5:
            a['name'].iloc[i]=np.nan
            a['mail'].iloc[i]=s[2]
            a['phone'].iloc[i]=np.nan 
        if len(s)==4:
            if s[0]=='':
                a['name'].iloc[i]=np.nan
                a['mail'].iloc[i]=s[2]
                a['phone'].iloc[i]=s[3]
            elif s[-1]=='':
                a['name'].iloc[i]=s[0]
                a['mail'].iloc[i]=s[1]
                a['phone'].iloc[i]=np.nan
         if len(s)==3:
             a['name'].iloc[i]=s[0]
             a['mail'].iloc[i]=np.nan
             a['phone'].iloc[i]=s[2]
print(a)

你是大的吗?它能与简单的循环一起工作吗?
a['name']=''
a['mail']=''
a['phone']=''

for i in range(len(a)):
    if ',,' not in a.comments.iloc[i] and ',,,' not in a.comments.iloc[i]:
        s=a.comments.iloc[i].split(',')
        a['name'].iloc[i]=s[0]
        a['mail'].iloc[i]=s[1]
        a['phone'].iloc[i]=s[2]
    elif ',,,' in a.comments.iloc[i]:
        a['name'].iloc[i]=np.nan
        a['mail'].iloc[i]=np.nan
        a['phone'].iloc[i]=np.nan   
    else:
        s=a.comments.iloc[i].split(',')
        if len(s)==5:
            a['name'].iloc[i]=np.nan
            a['mail'].iloc[i]=s[2]
            a['phone'].iloc[i]=np.nan 
        if len(s)==4:
            if s[0]=='':
                a['name'].iloc[i]=np.nan
                a['mail'].iloc[i]=s[2]
                a['phone'].iloc[i]=s[3]
            elif s[-1]=='':
                a['name'].iloc[i]=s[0]
                a['mail'].iloc[i]=s[1]
                a['phone'].iloc[i]=np.nan
         if len(s)==3:
             a['name'].iloc[i]=s[0]
             a['mail'].iloc[i]=np.nan
             a['phone'].iloc[i]=s[2]
print(a)