我有一个数据集,其中包含所有标题都以连续格式(在文件的第一个单元格中)书写,没有任何分隔符,名称长度不等,看起来像这样:在大熊猫中分割标题
ABCDEFG
1 0 1 0
0 0 1 0
1 1 0 1
我想数据集是这个样子:
AB C D EFG
1 0 1 0
0 0 1 0
1 1 0 1
随着每列获取其相应的头名。我怎样才能做到这一点?
我有一个数据集,其中包含所有标题都以连续格式(在文件的第一个单元格中)书写,没有任何分隔符,名称长度不等,看起来像这样:在大熊猫中分割标题
ABCDEFG
1 0 1 0
0 0 1 0
1 1 0 1
我想数据集是这个样子:
AB C D EFG
1 0 1 0
0 0 1 0
1 1 0 1
随着每列获取其相应的头名。我怎样才能做到这一点?
如果你的标题是类似的东西:
header = ['ABCDEFG']
基于指数,你可以写:
header = [header[0][:2], header[0][2], header[0][3], header[0][4:]]
你得到:
['AB', 'C', 'D', 'EFG']
我不建议盲目硬编码这样的序列。 –
@coldspeed同意,但你解决切片可能是一个晦涩的解决方案... –
此外,你是假设头是一个项目列表,这是错误的...和你的整个解决方案分崩离析,如果情况并非如此。 –
不管你列的当前如何是,你可以先加入他们,并使用itertools
:
from itertools import islice
seq = [2, 1, 1, 3]
it = iter(''.join(df.columns))
df.columns = [''.join(islice(it, 0, i)) for i in seq]
这个分配['AB', 'C', 'D', 'EFG']
到df.columns
。这种技术的优点是你可以很容易地通过编辑seq
列表和没有别的来很好地控制分割的大小和数量。
运行'print(df.columns)'。请粘贴打印出的内容。 –
你有什么方法可以确定你应该在哪里剪下这个名字?如果你不这样做,它会很难自动执行... – Carele
这就是问题出现的地方,不幸的是标题名称的长度不同而且没有特定的格式。 – Sahil