如何基于数据框中的列动态生成for循环?

问题描述 投票:1回答:1

我正在尝试根据数据帧中的列数动态生成for循环。

例如,如果我在数据框中的列为5,则生成for循环并相应地分配变量。如果

df_cols = ['USER_ID', 'BLID', 'PACKAGE_NAME', 'PACKAGE_PRICE', 'ENDED_DATE']

金砖四国是我的数据框架然后

for index, row in brics.iterrows():
  analytics.track(row['USER_ID'], 'Cancelled Subscription', {
    df_cols[1]: row['BLID']
    df_cols[2]: row['PACKAGE_NAME'],
    df_cols[3]: row['PACKAGE_PRICE'],
    df_cols[4]: row['ENDED_DATE'],

      })

df_cols和row [value]应基于数据帧中的列数生成。例如,如果数据框中只有2列,则下面是代码的外观。如果

df_cols = ['USER_ID', 'BLID']

然后

for index, row in brics.iterrows():
      analytics.track(row['USER_ID'], 'Cancelled Subscription', {
        df_cols[1]: row['BLID']
          })

我在SO中搜索了此解决方案,但找不到与数据帧相关的解决方案(尽管R可用)。任何指点都会有所帮助。谢谢。

python python-3.x pandas
1个回答
1
投票
df_cols = ['USER_ID', 'BLID', 'PACKAGE_NAME', 'PACKAGE_PRICE', 'ENDED_DATE']
for index, row in brics.iterrows():
      analytics.track(row['USER_ID'], 'Cancelled Subscription', {
        df_cols[i+1]: row[df_cols[i]] for i in range(len(df_cols)-1)
          })

0
投票
df_cols = ['USER_ID', 'BLID', 'PACKAGE_NAME', 'PACKAGE_PRICE', 'ENDED_DATE']
for index, row in brics.iterrows():
      analytics.track(row['USER_ID'], 'Cancelled Subscription', {
        df_cols[i+1]: row[df_cols[i]] for i in range(len(df_cols)-1)
          })
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.