我有pandas dataframe
一列文本字符串包含逗号分隔值.我想拆分每个CSV字段并为每个条目创建一个新行(假设CSV是干净的,只需要在','上拆分).例如,a
应该成为b
:
In [7]: a
Out[7]:
var1 var2
0 a,b,c 1
1 d,e,f 2
In [8]: b
Out[8]:
var1 var2
0 a 1
1 b 1
2 c 1
3 d 2
4 e 2
5 f 2
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了各种简单的函数,但是.apply
当在轴上使用时,该方法似乎只接受一行作为返回值,而我无法.transform
工作.我们欢迎所有的建议!
示例数据:
from pandas import DataFrame
import numpy as np
a = DataFrame([{'var1': 'a,b,c', 'var2': 1},
{'var1': 'd,e,f', 'var2': 2}])
b = DataFrame([{'var1': 'a', 'var2': 1},
{'var1': 'b', 'var2': 1},
{'var1': 'c', …
Run Code Online (Sandbox Code Playgroud) 我正在使用大型csv文件,最后一列的下一行有一个文本字符串,我希望通过特定的分隔符进行拆分.我想知道是否有一种简单的方法可以使用pandas或python来做到这一点?
CustNum CustomerName ItemQty Item Seatblocks ItemExt
32363 McCartney, Paul 3 F04 2:218:10:4,6 60
31316 Lennon, John 25 F01 1:13:36:1,12 1:13:37:1,13 300
Run Code Online (Sandbox Code Playgroud)
我想的空间分割(' ')
,然后结肠(':')
在Seatblocks
列,但每个单元格将导致不同的列数.我有一个重新排列列的功能,所以Seatblocks
列位于工作表的末尾,但我不知道该怎么做.我可以使用内置text-to-columns
函数和快速宏在excel中完成它,但我的数据集有太多的记录供excel处理.
最终,我想记录约翰列侬的记录并创建多条线,每组座位的信息都在一条单独的线上.