晚上好!我在用熊猫做木星笔记本。我有一个巨大的数据代表了一个信使的26个渠道的全部历史。它有一个列"dialog_id“,它表示在其中发送消息的对话框(因此,列中只能有26个唯一值,但是有超过700 k行,df是按时间而不是id排序的,因此有点混乱)。我必须将这个数据分割成两个不同的(一个将包含13个通道的完整历史,另一个将包含其余13个通道的历史)。我知道我必须拆分的ids,它们也是随机的。例如,一个是-1001232032465,另一个是-1001153765346。
问题是,我怎样才能做到最优雅、最充分?我知道我可以用df.loc[]做这件事,但我不想放13行df.loc[]。我尝试过使用逻辑运算符,例如: df1.loc[(df"dialog_id“== '-1001708255880')和(df"dialog_id”== '-1001645788710‘)],但它不起作用。我想我用错了。我希望通过使用逻辑运算符,使用任何创建新df的方法都能找到解决方案。在口头表达中,我认为应该是“如果dialog_id为x,dialog_id为y,或dialog_id为z,则将行放入新df中”。请帮帮我!
发布于 2022-11-17 15:21:33
最简单的方法似乎只是设置一个查询。
df = pd.DataFrame(dict(col_id=[1,2,3,4,], other=[5,6,7,8,]))
channel_groupA = [1,2]
channel_groupB = [3,4]
df_groupA = df.query(f'col_id == {channel_groupA}')
df_groupB = df.query(f'col_id == {channel_groupB}')https://stackoverflow.com/questions/74477104
复制相似问题