我希望df使用if语句创建并返回子集。具体来说,对于下面的代码,我有两组不同的值。我要返回的df值将根据这些值之一而有所不同。
使用下面的代码,具体值将在normal和内different。中的值place将决定如何对df进行子集化。
下面是我的尝试。in 中的值place永远只是一个值,因此它不会完全匹配列表。df当place这些列表中的值等于单个值时,是否可以返回?
我希望返回df1以用于后续任务。
import pandas as pd
df = pd.DataFrame({
'period' : [1.0, 1.0, 2.0, 2.0, 3.0, 4.0, 5.0, 7.0, 7.0, 8.0, 9.0],
})
place = 'a'
normal = ['a','b']
different = ['v','w','x','y','z']
different_subset_start = 2
normal_subset_start = 4
subset_end = 8
for val in df:
if place in different:
print('place is different')
df1 = df[(df['period'] >= different_subset_start) & (df['period'] <= subset_end)].drop_duplicates(subset = 'period')
return df1
elif place in normal:
print('place is normal')
df1 = df[(df['period'] >= normal_subset_start) & (df['period'] <= subset_end)].drop_duplicates(subset = 'period')
return df1
else:
print('Incorrect input for Day. Day Floater could not be scheduled. Please check input value')
return
打印(df1)
预期的输出将返回df1以供以后使用。
period
2 2.0
4 3.0
5 4.0
6 5.0
7 7.0
9 8.0
素胚勾勒不出你
呼如林
相关分类