我有一个熊猫DataFrame (如下所示)
Room_ID Chamber_ID Floor_Name
----------- ------------ ------------------------
111,222 9
111 9
None 1
111,222,333 1 和一个函数
def GetFloorName(Room_ID, Chamber_ID):
THis Will Return the Floor_Name DF中的这些数据必须在函数中逐一推送到每一行中,就像在第一行中一样。
the Data is 111,222 in Room_ID and 9 in Chamber_id```因此,函数调用应该如下所示
GetFloorName(111,9) which will return a Value (For Eg: X)
GetFloorName(222,9) which will return a Value (For Eg: Y)现在,这两个值都需要在用逗号分隔的Floor_Name中更新,如下所示:
期望输出DF
Room_ID Chamber_ID Floor_Name
----------- ------------ ------------------------
111,222 9 X,Y
111 9
None 1
111,222,333 1 如何使用Pandas做到这一点?
发布于 2019-06-11 01:48:44
我想您要找的是df.appy()
# Your function would look like this
def GetFloorName(Room_ID, Chamber_ID):
# Return None If Room_ID is None
if Room_ID is None:
return None
floor = []
#split by comma and loop over all
for z in Room_ID.split(','):
floor.append(sqlcall(z,Chamber_ID))
return ','.join(floor)
#dummy sqlcall
def sqlcall(f,z):
if z>5:
return X
else:
return Y
#apply the function on the series
df['Floor_Name'] = df.apply(lambda x: GetFloorName(x.Room_ID, x.Chamber_ID),axis=1)https://stackoverflow.com/questions/56530748
复制相似问题