gpt4 book ai didi

python - 如何拆分多列?

转载 作者:行者123 更新时间:2023-12-01 07:00:18 26 4
gpt4 key购买 nike

我想拆分数据集中的每一列。

这个想法是将“/”之间的数字和“/”和“@”之间的字符串分开,并将这些值放入新列。

我尝试过这样的事情:

new_df = dane['1: Brandenburg'].str.split('/',1)

然后为其创建新列。但我不想对所有 60 列都执行此操作。

first column

1: Branburg :
ES-NL-10096/1938/X1@hkzydzon.dk/6749
BE-BR-6986/3551/B1@oqk.bf/39927
PH-SA-39552610/2436/A1@venagi.hr/80578
PA-AE-59691/4881/X1@zhicksl.cl/25247

second column

2: Achon :
DE-JP-20082/2066/A2@qwier.cu/68849
NL-LK-02276/2136/A1@ozmdpfts.de/73198
OM-PH-313/3671/Z1@jtqy.ml/52408
AE-ID-9632/3806/C3@lhbt.ar/83484

etc,etc...

最佳答案

据我了解,您想从每个单元格中提取两个部分。例如。来自 ES-NL-10096/1938/X1@hkzydzon.dk/6749 应该有提取:

  • 1938 - 斜杠之间的数字,
  • X1 - 第二个斜杠和 @ 之间的字符串。

为此,您可以运行:

df.stack().str.extract(r'/(?P<num>\d+)/(?P<txt>[A-Z\d]+)@')\
.stack().unstack([1, 2])

您将在列上获得多重索引:

  • 顶级 - “源”列的名称,
  • 第二级 - numtxt - 2 个提取的“部分”。

对于您的示例数据,结果为:

  1: Brandenburg     2: Achon    
num txt num txt
0 1938 X1 2066 A2
1 3551 B1 2136 A1
2 2436 A1 3671 Z1
3 4881 X1 3806 C3

关于python - 如何拆分多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58664914/

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