Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何拆分多个列?_Python_Pandas_Split - Fatal编程技术网

Python 如何拆分多个列?

Python 如何拆分多个列?,python,pandas,split,Python,Pandas,Split,我想拆分数据集中的每一列 其思想是将数字拆分为“/”,字符串拆分为“/”和“@”,并将这些值放入新的列中 我试过这样的东西: 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-395526

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

其思想是将数字拆分为“/”,字符串拆分为“/”和“@”,并将这些值放入新的列中

我试过这样的东西:

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...
您可以使用
df.apply()
迭代数据帧的所有列并应用给定函数。以下是一个例子:

def fn(col):
    return col.str.split('/',1)

new_df = dane.apply (lambda col: fn(col), axis=1)

这里,
axis=1
表示迭代所有列。希望这有帮助

据我所知,您希望从每个单元格中提取两部分。 例如,来自ES-NL-10096/1938/X1@hkzydzon.dk/应该有 摘录:

  • 1938年的今天,斜杠之间的数字
  • X1-第二个斜杠和@之间的字符串
为此,您可以运行:

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

由于
split
返回一个列表,您期望的输出是什么?我也不确定我是否完全理解您对要解析的内容的解释。这是您的数据集吗?也许您想堆叠列,请参阅。我希望有一个列(列表),其中包含我从原始列拆分的值。F.e:`1938143536紧挨着ES-NL-10096/1938/X1@hkzydzon.dk/6749如果您的
apply
正在迭代列,为什么要命名输入变量
?这不是有点混乱吗?
  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