编辑Pandas Dataframe

wz1wpwve  于 2022-12-28  发布在  其他
关注(0)|答案(3)|浏览(137)

我有一个Pandas Dataframe 输出如下(它有6行,每行都有一个嵌套列表数据):

0 [[-127, -162, -197, -229, -245, -254, -261, -2...,]]

1 [[128, 157, 189, 226, 250, 257, 262, 265, 268,...,]]

2 [[56, 73, 85, 93, 100, 107, 113, 117, 118, 117...,]]

3 [[519, 619, 723, 827, 914, 956, 955, 934, 920,...,]]

4 [[-188, -239, -274, -316, -356, -374, -380, -3...,]]

5 [[-266, -316, -367, -407, -423, -423, -401, -3...,]]

6 [[21, 22, 24, 26, 28, 31, 32, 34, 34, 35, 35, ...,]]

我想解压嵌套列表并提取数据,然后将数据转换为Pandas Dataframe ,如下所示:


拆分和提取嵌套列表panda Dataframe 中的数据,并将每个数据分配到不同的列

sqxo8psd

sqxo8psd1#

我创建了一个演示 Dataframe ,然后按照您的需要将数据分成多个列

import pandas as pd
data={0:[[[-127,-126,120,216,-118,-117]],[[-112,-113,-114,-112,-110,109]]]
     }
df=pd.DataFrame(data)
df.head()
l=len(df[0][0][0])
j=1
for p in df[0]:
    for q in p[0]:
        df['Col_'+str(j)]=q
        j+=1
df.drop(0,axis=1)

**最终 Dataframe **

Col_1   Col_2   Col_3   Col_4   Col_5   Col_6   Col_7   Col_8   Col_9   Col_10  Col_11  Col_12
0   -127    -126    120 216 -118    -117    -112    -113    -114    -112    -110    109
1   -127    -126    120 216 -118    -117    -112    -113    -114    -112    -110    109
laximzn5

laximzn52#

您可以使用iterrows方法

output_df = pd.DataFrame()
for r in df.iterrows():
    output_df = output_df.append(pd.DataFrame(r[1][0]), ignore_index=True)
zed5wv10

zed5wv103#

我们可以创建一个新的数据框,方法是从列表中选择值,将其转换为数据框,然后重命名列

    • 代码:**
converted_df = pd.DataFrame(df['val'].apply(lambda x:x[0]).to_list())
converted_df.columns = [f"Col_{col}" for col in converted_df.columns+1]

相关问题