Python 中重復某一列的操作是一個常見需求。我們可以通過循環遍歷每一行,并復制指定列的值來實現該功能。
import pandas as pd
df = pd.read_csv('data.csv') # 讀取 CSV 文件
col_num = 2 # 指定要重復的列
repeats = 3 # 指定要重復幾次
for index, row in df.iterrows(): # 遍歷每一行
value = row[col_num] # 獲取指定列的值
repeated_values = [value] * repeats # 重復指定列的值
df.loc[index, f'col_{col_num}': f'col_{col_num + repeats - 1}'] = repeated_values # 將重復后的值賦給對應列
在上面的代碼中,我們使用 Pandas 庫讀取 CSV 文件,并使用iterrows()
方法遍歷每一行。然后,我們根據指定列的索引復制其值,重復次數可以通過變量repeats
來控制。最后,我們使用loc
方法將重復后的值分別賦值給對應列。
對于同樣的需求,我們還可以使用 NumPy 庫的tile()
方法來簡化代碼:
import pandas as pd
import numpy as np
df = pd.read_csv('data.csv') # 讀取 CSV 文件
col_num = 2 # 指定要重復的列
repeats = 3 # 指定要重復幾次
values = np.tile(df.iloc[:, col_num], (repeats, 1)).T.flatten() # 重復指定列的值
df = pd.concat([df, pd.DataFrame({f'col_{i}': values[i::repeats] for i in range(col_num, col_num + repeats)})], axis=1) # 將重復后的值添加到 DataFrame
在上面的代碼中,我們使用tile()
方法將指定列的值重復repeats
次,并將其拉成一行。然后,我們將重復后的值添加到 DataFrame 中。
無論是通過循環遍歷每一行還是使用tile()
方法重復指定列的值,Python 都有多種方法實現該功能。根據實際需求和數據量大小選擇合適的方法可以提高代碼效率。
上一篇python 截屏 圖片
下一篇vue appui框架