用循环数字简化行

时间:2017-05-09 09:40:41

标签: python loops numbers simplify

设置-向上

我通过以下行将pandas数据框'btn-3'中的特定列分配给新数据框SELECT tbl_ComplaintsCoded.CauseManager, Count(tbl_ComplaintsCoded.CauseManager) AS CountOfCauseManager, tbl_ComplaintsCoded.[Account Number], tbl_ComplaintsCoded.TouchCSM, tbl_ComplaintsCoded.[Mail Date] FROM tbl_ComplaintsCoded WHERE tbl_ComplaintsCoded.TouchCSM = [Forms]![frm_Central_Reporting]![Combo209] AND (tbl_ComplaintsCoded.[Mail Date] BETWEEN [Forms]![frm_Central_Reporting]![Text204] AND [Forms]![frm_Central_Reporting]![Text206]) GROUP BY tbl_ComplaintsCoded.CauseManager HAVING CountOfCauseManager > 0;

radf

问题

我想用循环简化上面的行。在例如Stata这很简单。但是,对于Python,我从来没有设法让它工作。

我见过人们做过这样的事情,

fdf

但这不起作用。

如何使这项工作?

1 个答案:

答案 0 :(得分:1)

range不包含停止索引,您应该在LHS上格式化字符串:

for i in range(1, 3):
    fdf['avg rent pcm,<br> {i}R'.format(i=i)] = radf['avg rent pcm'][i]  

在RHS上,您不应该从索引创建集合,而是直接使用它。

如果在Python 3.6上,您可以使用f-strings代替更详细的str.format

for i in range(1, 3):
    fdf[f'avg rent pcm,<br> {i}R'] = radf['avg rent pcm'][i]
    ...