我在箍谁能提供一个循环,可以解决我的问题。先谢谢你。
我有一个有63行的数据框。从数据框A中,我想把Dataframe A中的2条记录的每一个可能的组合追加到Dataframe B中,然后在新创建的Dataframes上运行分析。我还想在将行追加到Dataframe B并运行分析后跟踪结果。所以我想要一个打印语句或表格,基本上说明 "追加行M和N并运行分析后的结果是y"。
你可以使用itertools组合来创建组合,如下所示。dfA是你想要创建组合的数据框,dfB是你想要追加到的数据框。
import pandas as pd
from itertools import combinations
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},{'a': 100, 'b': 200, 'c': 300, 'd': 400},{'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
dfA = pd.DataFrame(mydict)
dfB = pd.DataFrame([{'a': 666, 'b': 777, 'c': 888, 'd': 999}])
row_list = []
for i in range(dfA.shape[0]): # Loops over all the integers from 0 to Number of Rows
row_list.append(list(dfA.iloc[i, :])) # iloc basically slices that particular row
all_combinations = list(combinations(row_list, 2))
# List of Resultant Dataframes
dfResult = []
columns = dfB.columns
# Loop over each combination and convert them into a DataFrame to append to dfB Dataframe
for each_combination in all_combinations:
combination_df = pd.DataFrame(list(each_combination), columns=list(dfB.columns))
result_combination_df = dfB.append(combination_df, ignore_index=True)
希望对你有所帮助!
我自己是SO的新人,无法对你的问题进行评论,所以在这里说一下。我相信,如果你能提供你已经开始工作的内容,以及你卡在哪里,那么你的问题被回答的机会会更大,这样大家就能给你针对性的帮助,而不是完整的解决方案。干杯,伙计! :)