如何将.csv数据分隔到不同的列中

  • 本文关键字:分隔 csv 数据 python pandas
  • 更新时间 :
  • 英文 :


我有一个文本文件,其中包含如下数据:

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)

最新更新