我拿到了一个数据集,里面的数据是表格CSV的形式,每个字段是用'|'进行分割的,可以看一下数据集:
可以看到所有的数据都在一行,那么在读取数据后的操作就很不方便,所以就有了将一列CSV拆成多列的需求。找了一下代码,居然没有人写这个的,所以自己写一份记录一下:
import pandas as pd
def csv_split(path):
news_list = []
for idx, line in enumerate(open(path, encoding='utf-8')):
if idx == 0:
cols = line.split('|') # 我这里分隔符是| ,请注意一般CSV文件都是, 自己替换一下就好了
else:
line_list = line.split('|')
news_list.append(line_list)
news_df = pd.DataFrame(news_list, columns=cols)
file_name = path.split('/')[-1]
file_name = file_name.split('.')[0]
news_df.to_excel(f'{file_name}.xlsx')
if __name__ == '__main__':
csv_split(path='xxx.csv') # 替换成需要修改的CSV文件路径
思路就是:
1.先读取csv文件,然后一行一行的读取,
2.将每一行数据用split方法进行分割,返回结果是一个一个的列表,一条数据就是一个列表,
3.统一存入另一个列表,形成一个新的二层列表,
4.然后用pandas的DataFrame方法,传入列表,列名,就形成了一个新的DataFrame文件,
5.最后进行保存就可以了。
值得注意的就是一般CSV分割附都是',' ,注意将程序中的'|'改成','就好了。