pd.DataFrame.join 不断排序

Posted

技术标签:

【中文标题】pd.DataFrame.join 不断排序【英文标题】:pd.DataFrame.join keeps sorting 【发布时间】:2018-12-04 10:25:32 【问题描述】:

我有两个不同形状的数据框,

我正在尝试通过匹配索引列来加入它们。我试过了

fx_news_concantate = fx_data.join(macronews, sort=False)

但从 2018 年 1 月 1 日开始,它一直对日期时间进行错误排序

有没有办法解决这个问题? .merge 不断返回错误。

【问题讨论】:

【参考方案1】:

似乎您正在寻找使用 pd.concat 而不是 pd.join (看到您甚至调用了变量 fx_news_concatenate!)。

试试:

fx_news_concatenate = pd.concat([macronews,fx_date],axis=1,join='inner')

“axis=1”表示您希望按列(而不是按行)连接,“join=inner”指定您希望如何处理轴索引。

希望对你有帮助:)

有关更多详细信息,您可以在此处参考 Pandas 文档: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html

这里是合并、连接和连接操作之间区别的一个很好的答案: Difference(s) between merge() and concat() in pandas

【讨论】:

我认为 concat() 仅在两个数据帧的索引列完全相等时才有效,这给了我一个错误。抱歉,如果问题不清楚。 没问题。即使索引列不完全相等,Concat 也可以工作。这取决于您选择如何处理索引。您的索引是唯一的,即在数据框中没有重复吗?如果是这样,只需尝试: pd.concat([macronews,fx_date],axis=1)。 谢谢!重复的索引是导致问题的原因! 乐于助人:)【参考方案2】:

尝试使用 concat 代替

fx_news_concanate = pd.concat([macronews, fx_data], axis=1, join='inner')

文档是here

【讨论】:

抱歉,它们的形状不一样。 在这种情况下,我建议您拆分时间戳,问题很可能是因为两者的时间戳不同。即日期相同但时间不同

以上是关于pd.DataFrame.join 不断排序的主要内容,如果未能解决你的问题,请参考以下文章

停止在 pandas html 表格输出中包装单元格内容的 jupyter notebook

实验7

实验7

使用 Java 从 .dat 文件中读取对象

您如何在 xcode 4 中读取 .dat 文件?

Python对多列文件中的数字进行排序[重复]