Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:水平展开/分解数据帧_Python_Python 3.x_Pandas_Dataframe_Pandas Groupby - Fatal编程技术网

Python 熊猫:水平展开/分解数据帧

Python 熊猫:水平展开/分解数据帧,python,python-3.x,pandas,dataframe,pandas-groupby,Python,Python 3.x,Pandas,Dataframe,Pandas Groupby,这可能是重复的,但我找不到所需的答案。 所以,问题是: 假设我有一个这样的数据帧: d1 = {'col1': [[1],[2,3]], 'col2' : [[3],[21,1]]} df1 = pd.DataFrame(d1) 可乐 可乐 0 [1] [3] 1. [2, 3] [21, 1] x=pd.concat( [df1[c].应用(pd.Series).为df1中的c添加前缀(c+“u”),轴=1 ) 打印(x) 印刷品: col1\u 0 col1\u 1 co

这可能是重复的,但我找不到所需的答案。 所以,问题是:

假设我有一个这样的数据帧:

d1 = {'col1':  [[1],[2,3]],
      'col2' : [[3],[21,1]]}

df1 = pd.DataFrame(d1)
可乐 可乐 0 [1] [3] 1. [2, 3] [21, 1]
x=pd.concat(
[df1[c].应用(pd.Series).为df1中的c添加前缀(c+“u”),轴=1
)
打印(x)
印刷品:

col1\u 0 col1\u 1 col2\u 0 col2\u 1
0 1.0 NaN 3.0 NaN
1     2.0     3.0    21.0     1.0

如果需要基于1的索引列,请执行以下操作:

x=pd.concat(
[df1[c].应用(pd.Series).为df1中的c添加前缀(c+“u”),轴=1
).重命名(
columns=lambda x:“{}}{}”。格式(x.split(“{”)为[0],int(x.split(“{”)为[1])+1)
)
打印(x)
印刷品:

col1\u 1 col1\u 2 col2\u 1 col2\u 2
0 1.0 NaN 3.0 NaN
1     2.0     3.0    21.0     1.0
试试这个

d1 = {'col1':  [[1],[2,3]],
      'col2' : [[3],[21,1]]}

df1 = pd.DataFrame(d1)

col_names = []
for col in list(df1):
    for col_number in range(max(df1[col].apply(len))):
        col_names.append(col + "_" + str(col_number + 1))

df2 = pd.concat([pd.DataFrame(df1.col1.tolist(), index= df1.index), pd.DataFrame(df1.col2.tolist(), index = df1.index)], axis = 1)
df2.columns = col_names