[英]convert string into numeric data in the dataframe using python
如果我们在数据框中有字段
A12
A13
A13
A12
A14
我们需要将此字符串转换为
A12 1
A13 2
A13 2
A12 1
A14 3
尝试这个:
arr=dataframe['old_col'].unique()
dataframe['new_col']=dataframe['old_col'].apply(lambda x: arr.index(x))
你可以使用字典
counts = {}
for s in strings:
assigned_number = counts.get( s, len(counts) + 1 )
counts[s] = assigned_number
看起来 OP 想要从第二个数字中减去第一个数字并得到结果。 你可以这样做:
my_test = ['A12', 'A13', 'A13', 'A12', 'A14']
def numberMyData(data):
try:
nums = re.match('\w(\d)(\d)', data).groups()
nums = nums[1] - nums[0]
return (data, nums)
except:
return (data, 0)
my_new_data = list(map(numberMyData, my_test))
然后你有一个列表,看起来像这样:
[('A12', 1), ('A13', 2), ('A13', 2), ('A12', 1), ('A14', 3)]
如果你想以你的问题的格式打印它,你可以使用这样的东西:
for data in my_new_data:
print(' '.join([data[0], str(data[1])]))
用 3 个空格连接数据。 输出如下所示:
A12 1
A13 2
A13 2
A12 1
A14 3
我们假设您的数据框是“df”,并且该字段的标题是“代码”。 您可以将其转换为数值:
def convert_to_num(code):
if code == 'A12':
return 1
elif code == 'A13':
return 2
else:
return 3
df['New_Code'] = df['Code'].apply(convert_to_num)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.