这可能很容易,但我对python还是新手。谁能帮帮我吗
以下是数据:
data = {'contact': ['123-546-3454', 'Sarah', 'Cyrus', '2458703433', '789-862-4860', 'Juan']}
df = pd.DataFrame(data = data)
df
Out[1]:
contact
0 123-546-3454
1 Sarah
2 Cyrus
3 2458703433
4 789-862-4860
5 Juan
我想从电话号码中删除“-”,并通过分隔电话号码和姓名获得两个数据帧。 预期结果:
Out[2]:
contact
0 Sarah
1 Cyrus
2 Juan
Out[3]:
contact
0 11235463454
1 2458703433
2 7898624860
Pandas系列有
.str
,它有函数.split()
分割字符串和.join()
加入列表。您可以先使用.split('-')
拆分联系人,然后使用.join('')
将其加入要获取联系人和姓名的单独数据帧,请为联系人所在的行创建一个
True
掩码.str.contains(pattern)
是一个检查regexpattern
是否以字符串形式存在的函数。为了匹配联系人,我们可以检查行是否只包含数字,为了只匹配行中的数字,模式是:^[0-9]+$
创建掩码后,使用
df[mask]
和df[~mask]
获取数据帧使用:
输出:
您还可以使用
replace()
方法:最后创建一个布尔掩码,并使用
isnumeric()
方法和chainreset_index()
方法:输出:
尝试使用^{} +^{} 创建一个掩码
相关问题 更多 >
编程相关推荐