有一个很好的方法来做下面的事情?
这与此处的问题完全相同:Split pandas dataframe string entry to separate rows
但那篇文章很老了,想知道是否有更好的方法使用更新的熊猫功能。
我已设法使用我的数据重现如下,但不确定如何合并超过2列。换句话说,我的var3将被视为类似于var 2,它在行中被复制。
获取行[val]
的逻辑row['var2'], row['var3'], row['var1'].split(',')
produces:
(99999, 1403298300, [u'08241', u'08215', u'08217'])
但仍不确定如何将其扩展到超过2列。
Out[104]:
var1 var2 var3
0 47429,47404 10700 1403298300
1 23030,23831,23147,23836,23860,23875 99999 1403297100
2 72930,72951,72832,72820,72949,72821 10200 1403298300
3 56522,58030,56583,56565 99999 1403295900
4 59824,59831,59821,59863,59865 99999 1403294700
pd.concat([pd.Series(row['var2'], row['var1'].split(','))\
for _, row in testdf.iterrows()]).reset_index()[:5]
index 0
0 47429 10700
1 47404 10700
2 23030 99999
3 23831 99999
4 23147 99999
旧帖子提供的示例:
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