【问题标题】:Creating new dataframe per row in the dataframe after manipulation操作后在数据框中的每行创建新的数据框
【发布时间】:2017-11-30 23:50:19
【问题描述】:

我有一个 panda 数据框,我需要对其执行多项操作,以便所有数据都与其中一行相关联。操作完成后,需要将数据框保存为引用数据框中该行的新数据框。这需要对每一行重复,所以最后我将为数据框中的每一行创建一个新的数据框。

 df
         A    B    C    D
    1    10   20   30   60
    2    20   10   10   20
    3    0    0    10   10

(数据框操作)

    A    B    C    D
1    0    0    0    0 
2    10   -10  -20  -40
3    -10  -20  -20  -50

需要调用它:df1

(对原始数据框的另一种操作)

     A    B    C    D
1   -10   10   20   40
2    0    0    0    0
3   -20  -10   0   -10

需要保存为:df2 等等……

关于如何做到这一点的任何想法。

这是我的尝试:

my_list = df["index"].tolist()
for i in my_list: 
    df + i = #the dataframe after manipulation

【问题讨论】:

    标签: python loops pandas dataframe


    【解决方案1】:

    您可以只遍历索引的值并使用 Python 字典来存储映射到数据帧的索引值。

    df_dict = {}
    for idx in df.index:
        df_current = # do some dataframe manipulation
        df_dict[idx] = df_current
    

    【讨论】:

      【解决方案2】:

      IIUC,您可以将数据框存储在列表中。

      list_df = []
      list_df.append(df)
      list_df.append(df * 10)
      list_df.append(df / 100)
      
      print(list_df[0])
      
          A   B   C   D
      1  10  20  30  60
      2  20  10  10  20
      3   0   0  10  10
      
      print(list_df[1])
           A    B    C    D
      1  100  200  300  600
      2  200  100  100  200
      3    0    0  100  100
      
      print(list_df[2])
      
           A    B    C    D
      1  0.1  0.2  0.3  0.6
      2  0.2  0.1  0.1  0.2
      3  0.0  0.0  0.1  0.1
      

      【讨论】:

        【解决方案3】:

        如何将它们添加到字典中:

        dataframes = {}
        dataframes["df2"] = #dataframe after manipulation
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-17
          • 2017-10-10
          • 2019-04-17
          • 2022-07-31
          相关资源
          最近更新 更多