Pandas Dataframe:将多列拆分为多列 [英] Pandas Dataframe: split multiple columns into multiple columns

查看:696
本文介绍了Pandas Dataframe:将多列拆分为多列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这种格式的熊猫数据框.

I've a panda dataframe in this format.

   Var1                  Var2                        Var2
    A   [2016-09-26, 2016-08-25, 2016-08-06] [u'1', u'5', u'4']
    B   [2016-09-26, 2016-08-25, 2016-08-06] [u'1', u'5', u'4']

我想将其转换为以下格式.

I want to convert it into the following format.

Var1     Var2      Var3
 A    2016-09-26    1
 A    2016-08-25    5
 A    2016-08-06    4
 B    2016-09-26    1
 B    2016-08-25    5
 B    2016-08-06    4

有人可以告诉我该怎么做吗?

Can anyone please tell me how to do it?

非常感谢!

推荐答案

如果列Var2Var3中的值位于lists中,则可以使用

If values in columns Var2 and Var3 are in lists, you can use numpy.repeat for repeat values by legths by str.len and flat values of nested lists by chain:

print (type(df.Var2.iat[0]))
<class 'list'>

print (type(df.Var3.iat[0]))
<class 'list'>

from  itertools import chain

df1 = pd.DataFrame({
        "Var1": np.repeat(df.Var1.values, df.Var2.str.len()),
        "Var2": list(chain.from_iterable(df.Var2)),
        "Var3": list(chain.from_iterable(df.Var3))})

print (df1)
  Var1        Var2 Var3
0    A  2016-09-26    1
1    A  2016-08-25    5
2    A  2016-08-06    4
3    B  2016-09-26    1
4    B  2016-08-25    5
5    B  2016-08-06    4

这篇关于Pandas Dataframe:将多列拆分为多列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆