import pandas as pd

定义转换函数

def convert_format(num_list): res = '' for i in range(len(num_list)): num_str = str(num_list[i]).zfill(4) # 将数字转化为4位字符串 if i == 0: res += num_str else: prev_str = str(num_list[i-1]).zfill(4) if num_str[:2] == prev_str[:2]: res += '-' + num_str[2:] else: res += '/' + prev_str[:2] + '-' + num_str return res

创建 DataFrame

df = pd.DataFrame({'all': ['1081-1091-1001-0483-0421', '611-613-639-839-837-833', '23-611-613-639', '23-611-613-639-993', '483-421'], 't': [1, 1, 1, 2, 0]})

使用 apply 和 lambda 函数进行转换

df['B'] = df['all'].apply(lambda x: convert_format(x.split('-')))

打印结果

print(df)

输出结果

all t B

0 1081-1091-1001-0483-0421 1 1081-1091-1001/0483-0421

1 611-613-639-839-837-833 1 0611-0613-0639/0839-0837-0833

2 23-611-613-639 1 0023/0611-0613-0639

3 23-611-613-639-993 2 0023/0611-0613-0639/0993

4 483-421 0 0483-0421

Python Pandas 数据处理:将数字列表转换为特定格式的字符串

原文地址: https://www.cveoy.top/t/topic/n3Tt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录