我有一个文本文件,其中包含如下数据:
NCP_341_1834_0022.png 2 0 130 512 429
我想把数据分成不同的列,名称如下:
[文件名',类',xmin',ymin',xmax',ymax']
我已经做到了:
test_txt = pd.read_csv(r"../input/covidxct/train_COVIDx_CT-3A.txt")
test_txt.to_csv(r"../working/test/train.csv",index=None, sep='t')
train = pd.read_csv("../working/test/train.csv")
然而,当我下载.csv文件时,它会在一列中提供数据行,而不是6列。我该怎么解决这个问题?
只需设置正确的分隔符(默认为','(:
test_txt = pd.read_csv(r"../input/covidxct/train_COVIDx_CT-3A.txt", sep=' ', header=None)
如果您使用的是来自Kaggle的test_COVIDx_CT-3A.txt。
不要忘记设置header=None
,因为没有标头。您也可以使用colnames=['image', 'col1', 'col2', ...]
来替换默认名称(0、1、2…(
为了回答我自己的问题,您可以使用str将单个.csv文件拆分为不同的列。对我来说,我把它分成6列,用于我的6个标签:
train[['filename', 'class','xmin','ymin','xmax','ymax']] = train['NCP_96_1328_0032.png 2 9 94 512 405'].str.split(' ', 6, expand=True)
train.head()
然后放下你不需要的栏:
train.drop(train.columns[[0]], axis=1)