Python 如何以合并(连接)同名列的方式导入csv文件?

Python 如何以合并(连接)同名列的方式导入csv文件?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个csv文件,其中每个列名存在三次。也就是说,对于文件中找到的每个列标题/名称,都有三个同名的不同列集。下面是此文件的简化版本 X Y Z X Y Z X Y Z 0 1 1 1 3 3 3 5 5 5 1 2 2 2 4 4 4 6 6 6 从本质上讲,我试图做的是导入此文件,但也将具有相同名称的列组合在一起,因此它看起来像: 我遇到的主要问题是,当我使用df=pd.read\u csv(file)导入此文件时,它会自动为重

我有一个csv文件,其中每个列名存在三次。也就是说,对于文件中找到的每个列标题/名称,都有三个同名的不同列集。下面是此文件的简化版本

   X  Y  Z  X  Y  Z  X  Y  Z
0  1  1  1  3  3  3  5  5  5  
1  2  2  2  4  4  4  6  6  6
从本质上讲,我试图做的是导入此文件,但也将具有相同名称的列组合在一起,因此它看起来像:

我遇到的主要问题是,当我使用
df=pd.read\u csv(file)
导入此文件时,它会自动为重复的列名添加后缀,这样我就无法使用我在网上看到的其他潜在修复(主要与groupby有关)。我还尝试设置参数
df=pd.read\u csv(file,header=None)
,看看是否可以做些什么,但是一旦我有了无头数据帧,我就立即迷路了


有人能帮我找到一个好方法吗?

试试
melt
然后用
cumcount
添加额外的列,然后
pivot
返回

s = df.melt()
s['v'] = s.groupby('variable').cumcount()
out = s.pivot('v','variable','value')
out
Out[75]: 
variable  X  Y  Z
v                
0         1  1  1
1         2  2  2
2         3  3  3
3         4  4  4
4         5  5  5
5         6  6  6

根据后缀的添加方式,您可以这样做来重命名它们

new_cols = []
for col in df.columns:
    new_cols.append(col.split('_')[0])
df.columns = new_cols

在split()方法中,只需使用read_excel提供的内容(可以是.或u或其他内容)

在没有pandas的情况下读取csv,移动内容,然后转换为pandas dataframe
new_cols = []
for col in df.columns:
    new_cols.append(col.split('_')[0])
df.columns = new_cols