我是靠谱客的博主 坚强宝马,最近开发中收集的这篇文章主要介绍【Python】使用pandas读取以特殊字符作为分隔符的文本数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【Python】使用pandas读取以特殊字符作为分隔符的文本数据

金融民工在日常工作中遇到的小问题,分享一下~(大佬请绕道)

import pandas as pd

df = pd.read_table(file_path, sep='$$', engine='python', header=0)

问题描述:

  1. 直接用read_csv或read_table读取分隔符为"$$"的文本型数据集时,pandas可能会生成一列为超长字符串(未通过指定的分隔符将一行数据分拆),另一列为"unnamed: 1"且元素均为np.nan的DataFrame,非实际所需
  2. 同时报告DtypeWarnings,提示部分行含有mixed types

解决方案:

import pandas as pd

file_path = folder_path + file_new_name

# replace '$$' with normal delimiter ','
file_input = open(folder_path + file_original_name, "rt", encoding='utf-8')
file_output = open(file_path, "wt", encoding='utf-8')

for line in file_input:
	file_output.write(line.replace('$$', ','))

file_input.close()
file_output.close()

# read the new text file with delimiter ','
data_chunks = pd.read_table(file_path, sep=',', converters=converter_dict, low_memory=False,
                            encoding='utf-8', header=0, chunksize=100000)
chunk_list = []
for index, chunk in enumerate(data_chunks):
    chunk_list.append(chunk) # extract data from io.parsers.TextFileReader
    print(">>> chunk{0} loaded...".format(index+1))
print(">>> concating...")

df = pd.concat(chunk_list, ignore_index=True)
print(">>> DataFrame created successfully")

最后

以上就是坚强宝马为你收集整理的【Python】使用pandas读取以特殊字符作为分隔符的文本数据的全部内容,希望文章能够帮你解决【Python】使用pandas读取以特殊字符作为分隔符的文本数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部