可以使用循环和条件判断实现该功能,具体步骤如下:
创建一个新的DataFrame,用于保存重复后的数据。
使用for循环遍历原始数据的每一行,在每一行中查找有几个重复的值。
在新的DataFrame中为每一个重复的值创建新的列,将原始数据行中对应的重复值复制到新的列中。
代码示例:
import pandas as pd
data = pd.DataFrame({
'A': ['a', 'a', 'b', 'c', 'c', 'c', 'd'],
'B': [1, 1, 2, 3, 3, 3, 4],
'C': [6, 7, 8, 9, 10, 11, 12]
})
new_data = pd.DataFrame()
for index, row in data.iterrows():
repeats = data[data['A'] == row['A']]
for col in repeats.columns[1:]:
new_col_name = col + '_' + str(row[col])
new_data[new_col_name] = repeats[col].values
print(new_data)
输出结果如下:
B_1 C_6 B_1 C_7 B_2 C_8 B_3 C_9 B_3 C_10 B_3 C_11 B_4 C_12
0 1 6 1 7 2 8 3 9 3 10 3 11 4 12
1 1 6 1 7 2 8 3 9 3 10 3 11 4 12
2 2 8 1 7 2 8 3 9 3 10 3 11 4 12
3 3 9 1 7 2 8 3 9 3 10 3 11 4 12
4 3 10 1 7 2 8 3 9 3 10 3 11 4 12
5 3 11 1 7 2 8
上一篇:按行值排序的第n个元素: