微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从数据框中为字典维护相同的索引

如何解决如何从数据框中为字典维护相同的索引

当我尝试运行此代码时:

SELECT
  calendar.date,type.label,COUNT(fact.id)
FROM
  calendar
CROSS JOIN
  type
LEFT JOIN
  submissions AS fact
    ON  fact.created >= calendar.date
    AND fact.created <  calendar.date + 1
    AND fact.type     = type.label
    AND fact.offer    = 'template1'
WHERE
    calendar.date BETWEEN ? AND ?
    AND type.label IN ('Mail','Online')
GROUP BY
  calendar.date,type.label

我正在为 X_test = df.values df_new = ks.DataFrame(X_test,columns = ['Sales','T_Year','T_Month','T_Week','T_Day','T_Hour']) 数据框获取新索引,该索引与 df_new 不同。

我尝试更改下面的代码以保留字典的索引。但是它给出了一个错误

df

'numpy.ndarray' 对象不可调用

有没有办法维护 X_test = df.values(index=df.index) 的索引,这些索引与 df_new 数据帧相同?

enter image description here

解决方法

DataFrames 有一个 set_index() 方法来手动设置“索引列”。考拉特别接受作为主要论点:

键:标签或类似数组或标签/数组列表
此参数可以是单个列键、与调用 DataFrame 长度相同的单个数组,也可以是包含列键和数组的任意组合的列表。这里,“数组”包括系列、索引和 np.ndarray。

这样,您就可以传递原始 df 的 Index 对象:

X_test = df.values 
df_new = ks.DataFrame(X_test,columns = ['Sales','T_Year','T_Month','T_Week','T_Day','T_Hour'])  

df_new = df_new.set_index(df.index)

现在关于您收到错误的行:

X_test = df.values(index=df.index)

出现错误的原因是您将 numpy 数组与 pandas DataFrames 混淆。
当您调用 DataFrame df.valuesdf 时,这将返回一个 np.ndarray 对象,其中包含所有数据帧值不带索引。 这不是函数,因此您不能通过编写 (index=df.index) 来“调用”它。
Numpy 数组没有自定义索引,它们只是数组。您的 df_new 只关心这一点,您可以按照我上面的说明进行设置。


免责声明:我无法为此答案安装 koalas,因此仅在 Pandas Dataframes 中进行了测试。如果考拉确实完全支持熊猫的界面,那应该可以。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?