如何比较列表中的元素并将一列分解为多列



我想将下面的Columns_A和Columns_B划分为3列。

我正在考虑创建什么方法(但不知道用python写什么(:

  1. 将Columns_A和Columns_B分解为3列
  2. 合并pass_one和pass_two和pass_three
  3. 将Columns_C和Columns_D追加到列表的最长值

原始数据(我将其更改为列表列表(:

Columns_CQ[/tr>Q[/tr>Q[/tr>Q[/tr>>>
Columns_A Columns_BColumns_D
1 A X Y
1 A X Y
1 A X Y
2 B X Y
2 B X Y
3 C X Y
3 C X Y
3 C X Y
3 C X Y
11 D Z
12 E Z
12 E Z
12 E Z
13 FZQ
13 FZQ

这不是一个完整的答案,但也许它会让你更进一步。我假设你的排序标准是Column_A mod 10:

# create the column we can group by; column A integers mod 10                   
df['Column_A_sort'] = df['Column_A'].astype(int) % 10                           
          
# group by that value                                                           
df.groupby('Column_A_sort').agg(list)    

输出:

for i in g.groups:
print(g.get_group(i))

打印:

Column_A Column_B Column_C Column_D  Column_A_sort
0        1        A        X        Y              1
1        1        A        X        Y              1
2        1        A        X        Y              1
9       11        D        Z        Q              1
Column_A Column_B Column_C Column_D  Column_A_sort
3         2        B        X        Y              2
4         2        B        X        Y              2
10       12        E        Z        Q              2
11       12        E        Z        Q              2
12       12        E        Z        Q              2
Column_A Column_B Column_C Column_D  Column_A_sort
5         3        C        X        Y              3
6         3        C        X        Y              3
7         3        C        X        Y              3
8         3        C        X        Y              3
13       13        F        Z        Q              3
14       13        F        Z        Q              3

正如ignoring_gravity所建议的那样,为了走得更远,准确地理解排序和重新组合列的标准会很有帮助。