按周熊猫创建子集

时间:2019-01-08 18:56:49

标签: python pandas

我有一个看起来像这样的熊猫数据框:

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'))

1 个答案:

答案 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