早上好
我正在尝试基于两列的内容更新DataFrame,并且遇到了问题。
具体地说,我有一列称为IP
,另一列称为VISITTIME
。我添加了两列,分别为OLDEST
和NEWEST
,其中必须包含该行VISITTIME
的最小和最大IP
。
使用:
df2 = pd.merge(df.groupby('IP')['VISITTIME'].min().to_frame(),
df.groupby('IP')['VISITTIME'].max().to_frame(), on="IP")
我可以获取表中每个IP
的最小和最大时间。然后,我可以对其进行迭代,但是我不知道如何更新原始的DataFrame
。
基本上,我要问的是如何在pandas
中执行以下操作:
UPDATE df SET df.OLDEST = df2.OLDEST, df.NEWEST = df2.NEWEST WHERE df.IP=df2.IP;
我觉得这应该很容易,但我感到遗憾的是,事实并非如此。
谢谢
答案 0 :(得分:0)
取决于您的熊猫版本(我在版本> 0.22.0中知道), 有一种叫做Dataframe.update的方法。
这应该提供一些示例,但要提供一些警告:
DataFrame.update(other, join='left', overwrite=True, filter_func=None, raise_conflict=False)
使用来自另一个DataFrame的非NA值进行修改。
按索引对齐。没有返回值。