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