如何通过 "for loop" 处理 pandas dataframe 中的嵌套数据?

How to deal with nested data in pandas dataframe via "for loop"?

我在 pandas 数据框中有一个嵌套数据,我想使用“pd.Dataframe ()”函数来展平列“names”。当我尝试通过“for 循环”展平时,它会生成 5 个不同的数据框列表,我不希望有这些列表,而只有一个列出所有值的数据框列表。我已经尝试过“concat”或“append”方法,但它没有提供任何前进的线索。欢迎任何help/comment,非常感谢。这是我的“for 循环”:

            x=df['names'].iloc[0:4]
                     
            name_data = pd.DataFrame(x)

           
            data_row=[]
            for data in x:
                data_row =pd.DataFrame(data)
        
                st.write(data_row)

如果我没理解错的话,你想将上面示例图像中的 5 个 table 连接到仅 1 个 table 并在 streamlit 上显示结果 table。

您只需

  • data_row =pd.DataFrame(data) 更改为 data_row += [pd.DataFrame(data)]
  • for循环结束后
    • 您可以使用 data_row = pd.concat(data_row)
    • data_row 中的所有数据帧连接到一个数据帧
    • 然后,使用 st.write(data_row)
    • 以流光显示结果 table

这是解决您的问题的示例。

df = pd.DataFrame({
    'names': [[{'name':'a'},{'name':'b'}], [{'name':'c'}]]
})

x=df['names'].iloc[0:2]

data_row = []
for data in x:
    data_row += [pd.DataFrame(data)]
data_row = pd.concat(data_row)

st.write(data_row)

或者您可以使用下面的示例创建字典列表和数据框

data_row = []
for data in x:
    data_row += data
data_row = pd.DataFrame(data_row)