将CSV文件中的列拆分为多个文件,使用iloc方法。

3
我有一个CSV文件,包含98列(目前为止),其中包含其他文件的列,我只想将其他文件的列拆分到新的CSV文件中,就像这样...
我在此上传了一个名为GenerateAndSplitSeedFile(Parts_skills_predict).csv的csv文件,如果需要可以查看。
data =pd.read_csv('MergedSeedData(Parts_skills_Durations_fix).csv')
print(len(data.columns))
data1 = data.drop(data.iloc[:, 64:], axis=1)
print(data1)
data1.to_csv('data1file.csv', index=False)

这里我正在读取CSV文件,并从98列中获取64列,然后将其写入CSV文件。

对于其他的分割操作,需要获取从0到8列和从64到83列,方法如下:

data22 = data.drop(data.iloc[:, 8:64], axis=1)
data2 = data22.drop(data22.iloc[:, 19:], axis=1)
# print(data2)
data2.to_csv('datafile.csv', index=False)

在这里,我已经将第一次分割(data22)中的列从0-8和64-98进行了拆分,然后从data2中删除了额外的列

问题是,如何在单行中对data2进行拆分,我想要从主文件中拆分0-8,64-83列,总计98列。我需要将其写在同一行中...


1个回答

1

有多种方法可以实现:

1.) np.concatenatenp.arange

#selecting 0-8,64-83
data.iloc[:, np.concatenate((np.arange(0,8),np.arange(64,83)),axis=0))]
#This is generate a list of column indexes you want to choose

2) np.r_

这句话的意思是保留HTML格式,在段落标签 `

` 中嵌入一个链接,链接的地址为 `np.r_`,其中 `link1` 是链接的名称。

data.iloc[:, np.r_[0:8,64:83]]

我无法获取CSV文件中正确的列,其中没有从0到8的列,它还获取了我不想要的最后一列。 - snehil singh
1
@snehilsingh 我建议你使用上述方法选择列(你可以放置任何想要的范围),而不是删除它们并且失去信息。 - Hima
有没有可能我们可以读取字符串列名本身,而不是选择列索引,请如果您知道的话请与我联系...谢谢。 - snehil singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接