我有一个看起来像这样的熊猫数据框:
x | week
___________________
234 | 40
345 | 40
123 | 41
155 | 41
213 | 41
... | ...
1452 | 52
我需要创建几个数据框,每个数据框仅包含一个星期
第40周一个,第41周一个,等等
到目前为止,我已经尝试过:
length = len(data.index)-1
firstweek=data['week'].iloc[0]
lastweek=data['week'].iloc[length]
df = {}
for i in range (firstweek,lastweek):
df[i]= pd.DataFrame(data.query('week== i'))
答案 0 :(得分:1)
您对变量i
进行了硬编码。假设您使用的是Python 3.6+,则可以将f字符串用于字符串插值。如果您使用的是Python 2或3的早期版本,则可以使用.format方法。
Python 3.6 +
length = len(data.index)-1
firstweek=data['week'].iloc[0]
lastweek=data['week'].iloc[length]
df = {}
for i in range (firstweek,lastweek):
df[i]= pd.DataFrame(data.query(f'week=={i}'))
Python 2和3
length = len(data.index)-1
firstweek=data['week'].iloc[0]
lastweek=data['week'].iloc[length]
df = {}
for i in range (firstweek,lastweek):
df[i]= pd.DataFrame(data.query('week=={i}'.format(i=i)))
进一步阅读:https://www.programiz.com/python-programming/string-interpolation