gpt4 book ai didi

python - 沿非对角线连接字符串

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:36 26 4
gpt4 key购买 nike

设置

import pandas as pd
from string import ascii_uppercase

df = pd.DataFrame(np.array(list(ascii_uppercase[:25])).reshape(5, 5))

df

0 1 2 3 4
0 A B C D E
1 F G H I J
2 K L M N O
3 P Q R S T
4 U V W X Y

问题
如何沿着非对角线连接字符串?

预期结果

0        A
1 FB
2 KGC
3 PLHD
4 UQMIE
5 VRNJ
6 WSO
7 XT
8 Y
dtype: object

我尝试了什么

df.unstack().groupby(sum).sum()

这很好用。但是@Zero 的回答要快得多。

最佳答案

你可以做

In [1766]: arr = df.values[::-1, :] # or np.flipud(df.values)

In [1767]: N = arr.shape[0]

In [1768]: [''.join(arr.diagonal(i)) for i in range(-N+1, N)]
Out[1768]: ['A', 'FB', 'KGC', 'PLHD', 'UQMIE', 'VRNJ', 'WSO', 'XT', 'Y']

In [1769]: pd.Series([''.join(arr.diagonal(i)) for i in range(-N+1, N)])
Out[1769]:
0 A
1 FB
2 KGC
3 PLHD
4 UQMIE
5 VRNJ
6 WSO
7 XT
8 Y
dtype: object

您也可以执行 arr.diagonal(i).sum()''.join 更明确。

关于python - 沿非对角线连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46598292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com