如何加入我的DataFrame?
d = {'users': [1,2,3,4,5,6,7,8,9], 'code': [12,21,34,12,21,40,74,40,92]}
df = pd.DataFrame(data=d)
我想使用“代码”匹配我的“用户”。
我希望我的桌子像这样-
user1 user2 code active
1 4 12 1
2 5 21 1
3 NONE 34 0
6 8 40 1
以此类推。
答案 0 :(得分:0)
我认为,最好创建包含对等ID1,ID2,代码和状态的类“ Pair”。并存储这些对象的列表。
但是如果必须使用结构,则可以使用自定义函数来创建这样的DataFrame。
def get_data_frame(data):
columns = ['user1', 'user2', 'code', 'active']
main_df = pd.DataFrame(columns=columns)
for index, user in enumerate(data['users']):
if data['code'][index] in main_df['code'].unique():
main_df.loc[main_df['code'] == data['code'][index], ['user2']] = user
main_df.loc[main_df['code'] == data['code'][index], ['active']] = True
else:
temp_df = pd.DataFrame(data=[[user, None, data['code'][index], False]], columns=columns)
main_df = main_df.append(temp_df, ignore_index=True)
return main_df