上附数据初始格式和数据处理代码,以及处理完后的数据情况,莫名其妙出现了五个逗号 是程序问题还是数据问题
把concat去掉看看,concat一般是合并两个dataframe,你这里不知道为啥要合并一个
不知道你这个问题是否已经解决, 如果还没有解决的话:原因:
在数据处理程序中,对某一列进行了逗号的替换操作,将逗号替换为空字符串。如果该列中原本存在有连续两个及以上逗号的情况,那么替换操作会将它们都替换为空字符串,从而导致多余的逗号出现。
解决方法:
为了避免出现这种情况,可以在对该列进行逗号替换操作之前,先对该列进行特殊字符的转义操作。例如,将连续两个及以上逗号替换为一个逗号加一个特殊字符(如“||”),然后再将所有逗号替换为空字符串,最后再将特殊字符替换回逗号即可。
以下是修改后的代码:
# 数据处理程序
def data_process(data):
"""
对数据进行处理
"""
# 对某个列进行处理
# 在进行逗号替换操作之前,先将连续两个及以上逗号替换为一个逗号加一个特殊字符(如“||”)
data['column_name'] = data['column_name'].apply(lambda x: x.replace('old_value', 'new_value'))
data['column_name'] = data['column_name'].apply(lambda x: re.sub(r',+', ',||', x))
# 将所有逗号替换为空字符串
data['column_name'] = data['column_name'].apply(lambda x: x.replace(',', ''))
# 将特殊字符替换回逗号
data['column_name'] = data['column_name'].apply(lambda x: x.replace('||', ','))
return data
使用 re.sub 函数对连续的两个及以上逗号进行替换操作,将其替换为一个逗号加一个特殊字符(如“||”)。处理完所有逗号替换操作后,在将特殊字符替换回逗号即可。