首页 > 解决方案 > 使用python使用给定的字符串迭代数据框

问题描述

我有一个 cli 论点

import os
import sys

month_year = ''
if sys.argv[1:]:
     month_year = sys.argv[1]

print(month_year)
>python file.py 202012,202101,202102

现在month_year will be 202012,202001,202102 class <'str'>

我也有一个数据框

city            sales         
Los Angeles     2000
Florida City    1000

如何将month_year列作为列附加到上述数据框中,以便 df 中的每条记录都映射到该字符串中的每一年?

city            sales         year
Los Angeles     2000          202012
Florida City    1000          202012
Los Angeles     2000          202101
Florida City    1000          202101
Los Angeles     2000          202102
Florida City    1000          202102

标签: pythonpandas

解决方案


如果您的起始 df 是有两行的,这应该有效:

l = ['202012','202101','202102']
df2 = pd.concat({i:df for i in l}).reset_index(level=0).rename({'level_0':'year'},axis=1)[['city','sales','year']]

推荐阅读