如何在python中循环附加脚本
我想在我的数据中进行200个相关组合,到目前为止,我有这个及其工作:如何在python中循环附加脚本,python,pandas,loops,Python,Pandas,Loops,我想在我的数据中进行200个相关组合,到目前为止,我有这个及其工作: corr = pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[0]], list(df_pvt.columns)], method='pearson')[['X','Y','r']] corr_1 = corr.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[1]], list(df_pvt.columns)]
corr = pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[0]], list(df_pvt.columns)], method='pearson')[['X','Y','r']]
corr_1 = corr.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[1]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])
corr_2 = corr_1.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[2]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])
corr_3 = corr_2.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[3]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])
corr_4 = corr_3.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[4]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])
...
corr_200
我需要循环这个corr脚本,这样我就不必写200行脚本了。
我尝试过这个,但它只有两种组合:
corr = pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[0]], list(df_pvt.columns)], method='pearson')[['X','Y','r']]
for var in list(range(1,10)):
corr_all = corr.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[var]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])
print(corr_all)
有什么建议吗?也许你可以试试这个:
corr = list()
for x in range(201):
corr.append(pg.pairwise_corr((df_pvt, columns=[[df_pvt.columns[x]], list(df_pvt.columns)], method='pearson')[['X','Y','r']]))
这是一条路:
with open('file.py','w') as f:
f.write("corr_0 = pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[0]], list(df_pvt.columns)], method='pearson')[['X','Y','r']]\n")
for n in range(1,201):
f.write(f"corr_{n} = corr_{n-1}.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[1]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])\n")
该代码将生成另一个python文件,名为
file.py
,包含所有201行代码。我之前发布了我的最佳答案,但有一种更简单的方法:
corr_0 = pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[0]], list(df_pvt.columns)], method='pearson')[['X','Y','r']]
for n in range(1,201):
exec(f"corr_{n} = corr_{n-1}.append(pg.pairwise_corr(df_pvt, columns=[[df_pvt.columns[1]], list(df_pvt.columns)], method='pearson')[['X','Y','r']])")
但不建议使用此方法,因为它使用了exec
,这被认为是一种不好的做法,因为它通常被滥用来执行不需要的任务,从而导致潜在的安全问题和糟糕的编程。