首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一定条件下应用,并通过python在pandas中附加以-分隔的值

如何在一定条件下应用,并通过python在pandas中附加以-分隔的值
EN

Stack Overflow用户
提问于 2019-09-05 22:09:22
回答 1查看 147关注 0票数 0

我已经创建了一个包含列NameMains的数据帧。

代码语言:javascript
复制
data = [['Anshu', '8321-1328-11'], ['Hero', '83211-1128-11'], ['Naman', '65432-8765-4']] 

df = pd.DataFrame(data, columns = ['Name', 'Mains'])

我想用一个更新的值(即df' new _ Mains‘)将mains列更新到一个新列中,条件是:如果数字被4-4-2分开,那么应该加上0,更新后的分开的数字将是5-4-2?在熊猫身上这样做是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-05 23:09:20

我很确定这是可以做到的。例如,

代码语言:javascript
复制
def my_func(strn):

    a,b,c = strn.split('-')
    new_a = '0'+a if len(a)==4 else a
    new_b = '0'+b if len(b)==3 else b
    new_c = '9'+c if len(c)==1 else c

    return '-'.join([new_a,new_b,new_c])

然后,

代码语言:javascript
复制
df['New_Mains'] = df['Mains'].apply(my_func)

注意:不再假设'a‘的长度是4或5。如果'a','b','c’是任何其他长度,那么你也可以这样做(同样适用于当前场景)

代码语言:javascript
复制
new_a = '0'*5-len(a) + a
new_b = '0'*4-len(b) + b
new_c = '9'*2-len(c) + c

有关str.split的更多信息,请点击此处。基本上,在您的示例中,字符串类似于"99999-9999-99“,并使用"-”作为分隔符。所以,

代码语言:javascript
复制
"99999-9999-99".split('-') #would return
['99999', '9999', '99'] 

其中a= '99999',b= '9999',c= '99‘。

new_a、new_b、new_c是变量,用于在检查条件语句后保存a、b和c的新值。最后,将字符串new_a、new_b、new_c连接起来,使其看起来像“Mains”列中的原始字符串。有关str.join的更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57807363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档