我試圖用虛擬數據重現這個問題。 data = {'col_1': ['1:', '1:', '1:', 1, 1], 'col_2': [2, 2, 2, 2, 2], 'col_3': [':', ":" , 3, 3, ":"], 'col_4': [4, 4, 4, 4, 4], 'col_5': [5, 5, 5, 5, 5]}df = pd.DataFrame.from_dict(data) 這就是它看起來的樣子。 print(df) col_1 col_2 col_3 col_4 col_50 1: 2 : 4 51 1: 2 : 4 52 1: 2 3 4 53 1 2 3 4 54 1 2 : 4 5 如果您的數據與我創建的虛擬數據相似,那么下面的代碼可以工作 col_names = df.columnsfor idx, col in enumerate(col_names): # loop every columns to ensure indices = df[df[col] == ":"].index # get indices of rows that has ":" value if len(indices) > 0: # only shift if the row has ":" values for i in range(idx, len(col