如何用熊猫连接列?

时间:2020-11-09 07:21:39

标签: python pandas

如何将选定的列彼此串联?我当前的代码仅连接最后一列,即使它位于其原始位置(在右侧),但我希望它在左侧。我希望我的代码选择3列并进行连接(以便它们的新位置在左侧),然后选择接下来的3列并进行连接,依此类推。 初始数据如下所示: Initial data

这是我想要得到的结果: Expected result

但这是我在当前代码中得到的错误结果: Wrong result

这是我的代码:

import pandas as pd
file = "C:\\Myfile.xlsx"
file1 = pd.read_excel(file, index=False,sheet_name="Sheet1", index_col=0) 


list = [0,3,3,3]
column_beginning = 0
column_end = 3

for value in list:
  column_beginning = column_beginning + value
  column_end = column_end + value 
  x = file1.iloc[:, column_beginning:column_end]
  df = pd.concat([file1, x], ignore_index=True)

df.to_excel("C:\\Myfile_new.xlsx", index=False)

1 个答案:

答案 0 :(得分:1)

此解决方案可能只是解决您的问题,请对其进行测试。对我来说似乎很好。

import pandas as pd
import numpy as np
columns=df.columns
length=len(columns)
looping_length=int(length/3)
final_df=df.copy()
inter_df=pd.DataFrame()
for i in range(0, looping_length+1):
    temp_df=pd.DataFrame(np.array(df.iloc[:,3*i:3*i+3]))
    inter_df=pd.concat([inter_df, temp_df], axis=0, ignore_index=True)
    #print(inter_df)

inter_df=inter_df.rename(columns={0:"Col1",1:"Col2",2:"Col3"})
final_df=pd.concat([final_df, inter_df], axis=0, ignore_index=True)