我想将下面的Columns_A和Columns_B划分为3列。
我正在考虑创建什么方法(但不知道用python写什么(:
- 将Columns_A和Columns_B分解为3列
- 合并pass_one和pass_two和pass_three
- 将Columns_C和Columns_D追加到列表的最长值
原始数据(我将其更改为列表列表(:
Columns_A | Columns_B | Columns_CColumns_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 | Q[/tr>|
12 | E | Z | Q[/tr>|
12 | E | Z | Q[/tr>|
12 | E | Z | Q[/tr>|
13 | F | >Z | Q |
13 | F | >Z | Q |
这不是一个完整的答案,但也许它会让你更进一步。我假设你的排序标准是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所建议的那样,为了走得更远,准确地理解排序和重新组合列的标准会很有帮助。