Pandas中的新 Dataframe 基于现有df中的特定值(大量值)

siotufzp  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(104)

晚上好!我正在使用Jupyter笔记本上的Pandas。我有一个巨大的 Dataframe ,代表了信使中26个通道的帖子的完整历史。它有一列“dialog_id”,代表了消息在哪个对话框中发送(因此,在列中只能有26个唯一值,但是有多于700 K行,并且DF本身按时间排序,而不是按ID,所以有点混乱)。我必须将此 Dataframe 拆分为两个不同(一个将包含13个频道的完整历史,另一个将包含其余13个频道的历史)。我知道我必须分裂的id,它们也是随机的。例如,一个是-1001232032465,另一个是-1001153765346。
问题是,我怎样才能最优雅、最充分地完成它呢?我知道我可以用df.loc[]来完成它,但我不想放13行df.loc[]。我试着用逻辑运算符来完成它,比如:文件的[(“对话框标识”)(df[“dialog_id”] == '-1001645788710')],但是它不起作用。我想我用错了它们。我希望用任何方法创建一个新的df,用逻辑运算符。在口头表达中,我想它听起来应该像“如果dialog_id是x,或者dialog_id是y,或者dialog_id是z,等等,把行放在一个新的df中”。请帮助我!

fsi0uk1n

fsi0uk1n1#

最简单的方法似乎就是设置一个查询。

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

相关问题