python pandas将字符串值转换为行

时间:2014-06-25 20:00:10

标签: python pandas

有一个很好的方法来做下面的事情?

这与此处的问题完全相同: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

0 个答案:

没有答案