CSV文件拆分情况。。。
收藏
CSV文件拆分情况。。。
1.要注意读取的分隔符
2.保存时要注意保存的分隔符
分隔符坑很多,有的是“,”, 有的是空格,有的是tab,不一而足。。。。。。
import os
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
def rename():
for (root, dirs, files) in os.walk("tianchi_datasets", topdown=False):
for name in files:
new_name = os.path.join(root, root.split('/')[-1] + '_' + name)
print(os.path.join(root, "\t", name), new_name)
os.rename(os.path.join(root, name), new_name)
def break_data(target, rate=0.2):
for (root, dirs, files) in os.walk(target, topdown=False):
for name in files:
if "_" in name:
print(name)
origin_filename = os.path.join(root, name)
origin_dataset = pd.read_csv(origin_filename, delimiter="\t", header=None) # 加入参数
train_data, test_data = train_test_split(origin_dataset, test_size=rate)
train_filename = os.path.join(root, 'train.csv')
dev_filename = os.path.join(root, 'dev.csv')
train_data.to_csv(train_filename, index=False, sep="\t", header=None)
test_data.to_csv(dev_filename, index=False, sep="\t", header=None)
if __name__ == '__main__':
# rename()
break_data(target='datasets', rate=0.2)
0
收藏
CSV嘛,还是用逗号Comma比较好。
感谢分享。
好像也可以用numpy吧
是说读取,不是拆分~
人家数据是tab,前后保持一致嘛
是不是,下次抄一抄
是呀,遇到这种不按套路出牌的,也只能奉陪到底了
我同事之前不知道有Tab这种分隔符(Excel导出默认),Pandas处理的时候一直用sep的空格分隔符识别,一行命令可以搞定的事情折腾了老半天,还用上了正则啥的,哈哈哈
有逗号,空格,t ab
有的数据集会用“|”
哈哈,搞不定就会用那个处理所有特殊分割字符的正则啦~~
,和|起码看得见,tab和空格真是个坑
是说真正的”坑“~
有次因为这个分隔符,我真服了。。。自己打上去的 tab 不行,复制数据集里的就行了,只能苦笑~~
难道这个跟文件编码还有关系?
或者是linux与win里的这些tab,换行的编码不同导致的吧
高手高手
这个不是打的吧,是设置的
我觉得这是IDE的问题……一些IDE可以看见的
那是很难处理到位的
是的,windows和linux下面tab还略有不同