我想把三个字符串列合并成一个新列,如果新列的组合字符总数等于10。你知道吗
如果不等于10,则检查下一个组合列。你知道吗
如果Phone1Area等于3个字符串字符,Phone1Prefix等于3个字符串字符,Phone1NumberPart等于4个字符串字符,换句话说,总共10个字符,我尝试将这些列添加到一个新列中。我试过添加3+3+4个字符的列,测向位置,还有更多的事情。你知道吗
以下是数据集示例:
代码如下:
dfp['p1'] = df[(df['Phone1Area'].str.len() == 3.0)]['Phone1Area'] +
df[(df['Phone1Exchange'].str.len() == 3.0)]['Phone1Exchange'] +
df[(df['Phone1NumberPart'].str.len() == 4.0)]['Phone1NumberPart']
dfp['p2'] = df[(df['Phone2Area'].str.len() == 3.0)]['Phone2Area'] +
df[(df['Phone2Exchange'].str.len() == 3.0)]['Phone2Exchange'] +
df[(df['Phone2NumberPart'].str.len() == 4.0)]['Phone2NumberPart']
df_phone.loc[df_phone['p1'].str.len() == 10, 'phone'] = df_phone['p1']
df_phone.loc[df_phone['p2'].str.len() == 10, 'phone'] = df_phone['p2']
以下是我想要它做的,但是在熊猫身上:
if df_phone['p1'].str.len() == 10:
then insert df_phone['p1'] into df_phone['phone']
elif df_phone['p2'].str.len() == 10:
then insert df_phone['p2'] into df_phone['phone']
elif df_phone['p3'].str.len() == 10:
then insert df_phone['p3'] into df_phone['phone']
我希望phone列包含phone1的10个字符,如果不是10个字符,那么phone列包含phone2的10个字符,以此类推
但其中一个结果是:
AttributeError: 'DataFrame' object has no attribute 'str'
你知道怎么解决吗?你知道吗
另一个使用
np.select
的解决方案应该更快:这将有助于:
相关问题 更多 >
编程相关推荐