问题描述
我有一个DataFrame,其中包含由发件人.groupby
发送的WhatsApp消息。我可以以某种方式将整个DataFrame或仅一个Series拆分并保存到单独的变量中吗?
所以说我有发送者A,B,C。我可以分别使用发送者A,B,C或仅发送者曾经是A,B或C的一列的序列来获得3个新数据帧吗?
解决方法
据我所知,您不能在没有显式定义的情况下动态创建新变量。例如:
for sender in senders:
df_{sender} = df[df["sender"] == sender]
因此,如果要将DataFrame
拆分为多个变量,则必须对定义所有变量的解决方案进行“硬编码”。例如。我建议您使用df_A = df[df["sender"] == "A"]
,然后再进行适当的计算/转换,因为您要执行的对象一次仅包含一个发件人。
如果您想将多个df.groupby("sender")
保存为CSV文件(每个发件人一个),则可以尝试:
DataFrame
x.name是df.groupby("sender").apply(lambda x: x.to_csv(f"sub_df_{x.name}.csv"))
所在的索引,因此在这种情况下是相应的发送者。