[英]how to pass all the column from dataframe into different user defined function
如何将 dataframe 中的所有列传递到不同的用户定义的 function
这是我的 dataframe 看起来像
data = [['tom', 10, 9876765143, 'SUN 1023'], ['nick', 15, 98767654312, 'SUN 1023'], ['juli', 14, 98769876541, 'SUN 1023']]
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Number', 'Address'])
df
这里是 function 现在我只展示一个 function
def number(inp):
import re
regex = r'^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$'
inp = inp.replace(regex, 'XXXXXXX')
print (inp)
number(df.Number)
它抛出错误
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
similarly i have multiple function i just want to pass each column from dataframe with the value associated within the column of dataframe into each user defined function like i have a function number similarly i have other function def new() def beg() one by one . 有没有办法解决这个问题
为什么还要使用 function? 您可以直接将正则表达式模式应用于相关列。
regex = r'^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$'
>>> df['Number'].astype(str).str.replace(regex, 'XXXXXXX')
0 XXXXXXX
1 XXXXXXX
2 XXXXXXX
Name: Number, dtype: object
如果您需要 function:
import random
def phone_number(series):
regex = r'^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$'
return series.str.replace(regex, 'X' * random.randrange(3, 8))
>>> phone_number(df['Number'].astype(str))
0 XXXXXXX
1 XXXXXXX
2 XXXXXXX
Name: Number, dtype: object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.