python将多个列表转换为特定列表的行

python将多个列表转换为特定列表的行,python,dataframe,melt,Python,Dataframe,Melt,我有以下数据帧: network date count2 count3 user2 user3 3 20170721 [6, 7] [1,3] [57,88] [47,58] 4 20170721 [6] [] [12] [] 43 20170721 [] [7,2] [] [57,62] 我想按行拆分列表,但count和u

我有以下数据帧:

network   date       count2    count3  user2     user3 
3         20170721   [6, 7]    [1,3]   [57,88]   [47,58] 
4         20170721   [6]       []      [12]      []
43        20170721   []        [7,2]   []        [57,62]
我想按行拆分列表,但count和user必须对应:

network   date       count2   count3  user2    user3 
3         20170727   6       Nan      57       Nan
3         20170727   7       Nan      88       Nan
3         20170727   Nan     1        Nan      47
3         20170727   Nan     3        Nan      58
4         20170727   6       Nan      12       Nan
43        20170727   Nan     7        Nan      57
43        20170727   Nan     2        Nan      62
我怎样才能快速完成?用户列表实际上很长(超过50k个条目)。
谢谢大家!

有一种方法可以做到这一点,并在不需要所有额外NaN的情况下实现您想要的结果

df = pd.DataFrame({'network':[3,4,43],'date':['20170721']*3,
                   'count2':[[6,7],[6],[]],
                   'count3':[[1,3],[],[7,2]],
                   'user2':[[57,88],[12],[]],
                   'user3':[[47,58],[],[57,62]]})

df = df.set_index(['network','date'])

(df.apply(lambda x: pd.DataFrame(x.tolist(),index=x.index)
                      .stack()
                      .rename(x.name))
   .reset_index())
输出:

   network      date  level_2  level_0  count2  count3  user2  user3
0        3  20170721        0      0.0     6.0     1.0   57.0   47.0
1        3  20170721        1      NaN     7.0     3.0   88.0   58.0
2        4  20170721        0      1.0     6.0     NaN   12.0    NaN
3       43  20170721        0      2.0     NaN     7.0    NaN   57.0
4       43  20170721        1      NaN     NaN     2.0    NaN   62.0

到目前为止你试过什么?您能告诉我使用.asarray将数据帧转换为数组时的结果是什么吗?告诉我们您做了什么,即使速度很慢,您所说的“计数和用户必须对应”是什么意思?除了
Nan
之外,您没有列出任何相应计数和用户值的示例。你的预期结果是什么?“按行拆分列表”的确切含义是什么?每行数据会发生什么情况???我已经尝试过这个解决方案:对于用户2,然后是用户3和concat,但它不是optimal@AMagoon. 我认为这个例子非常清楚地说明了应该做什么。