从现有数据框的每一行创建新数据框的python方式



请推荐一种从现有数据帧的每一行创建新数据帧的python方法。

建议必须考虑到现有数据帧的行数是随机的,所以提供的解决方案必须考虑到这一点。(对于下面的示例,原始数据帧包含3行,但是,原始数据帧中的实际行数将是随机的。)原数据框的列将保持不变。

原始dataframe:

import pandas as pd
from numpy.random import randn

df = pd.DataFrame(randn(3,3), columns=['column 1', 'column 2', 'column 3'], index = ['row 1', 'row 2', 'row 3'])
print(df)

输出:

column 1  column 2  column 3
row 1  0.972855 -0.179018  0.177614
row 2 -2.146628 -1.639054 -0.708013
row 3 -1.295298 -0.313462 -0.229140

实现解决方案后的期望输出(如下所示创建了三个新数据帧,保留了原始列):

dataframe 1:

column 1  column 2  column 3
row 1  0.972855 -0.179018  0.177614

dataframe 2:

column 1  column 2  column 3
row 2 -2.146628 -1.639054 -0.708013

dataframe 3:

column 1  column 2  column 3
row 3 -2.146628 -1.639054 -0.708013

我还想保留处理新创建的数据帧的能力,并操纵其中的数据。

我已经尝试通过使用。iterrows函数和使用动态创建的变量来实现我自己的解决方案,但我想知道解决问题的建议,最简单,最优雅的方法是什么。

好的,我认为我找到的解决问题的方法是所有建议中最好的,所以我将在这里分享它:

首先,我们将使用"for"遍历原始数据库的行。循环和itertuples()"函数。在循环中,.itertuples()返回的数据函数用于构造一个新的pandas数据库,然后将其存储在字典中。用于存储每个新创建的数据库的字典键是从".itertuples"函数。

import pandas as pd
from numpy.random import randn

df = pd.DataFrame(randn(3,3), columns=['column 1', 'column 2', 'column 3'], index = ['row 1', 'row 2', 'row 3'])
row = df.itertuples()
my_dict = {}
for row in df.itertuples():
my_dict[row[0]] = pd.DataFrame([list(row)[1:]], columns=['column 1', 'column 2', 'column 3'],
index = [row[0]])
print(my_dict)

输出:

{'row 1':        column 1  column 2  column 3
row 1  2.083922  1.513993  0.861644, 'row 2':        column 1  column 2  column 3
row 2  0.988185 -0.685701  0.252542, 'row 3':        column 1  column 2  column 3
row 3 -0.526314 -1.481147 -1.789547}

这是我能找到的最直接的解决方案。对以上有什么意见吗?(如果有更好的解决方案,我将更改接受的答案。)

您可以使用groupby,并使用全局变量来设置新的数据框架名称。像这样:

import pandas as pd
from numpy.random import randn

df = pd.DataFrame(randn(3,3), columns=['column 1', 'column 2', 'column 3'], index = ['row 1', 'row 2', 'row 3'])
count = 0
for (uniquerow), group in df.groupby(df.index):
count+=1
globals()['df' + str(count)] = group

,其中df1-dfn现在已经为原始数据框的n行创建。

相关内容

  • 没有找到相关文章