当前位置: 首页 > 知识库问答 >
问题:

熊猫附加不同于文件[副本]

干鑫鹏
2023-03-14

这正是我正在做的

import pandas as pd
import numpy as np
dataset = pd.DataFrame.from_dict({"0": [0,0,0,0]}, orient="index", columns=["time", "cost", "mult", "class"])
row= [3, 1, 3, 1]
dataset = dataset.append(row, sort=True )

试图得到这个结果

    time   cost  mult  class
0    0.0   0.0   0.0   0.0
1     1     1     1     1

我得到的是

    0    class  cost  mult  time
0  NaN    0.0   0.0   0.0   0.0
0  3.0    NaN   NaN   NaN   NaN
1  1.0    NaN   NaN   NaN   NaN
2  3.0    NaN   NaN   NaN   NaN
3  1.0    NaN   NaN   NaN   NaN

我已经尝试了这些参数的所有组合,但它总是向我显示一堆新行,这些行的值位于新的分隔列上,而且它还更改了我在初始数据集中定义的列的顺序。(我也尝试了。concat的各种功能,但它仍然给出了类似的问题,wven使用Axis=0)

因为即使是文档中的示例在代码结构相同的情况下也没有显示这个结果,如果有人能告诉我发生了什么,为什么发生了什么,以及如何修复这个问题,那就太好了。

为了回答这个问题,我已经试过了

row= pd.Series([3, 1, 3, 1])
row = row.to_frame()
dataset = dataset.append(row, ignore_index=True )
     0  class  cost  mult  time
0  NaN    0.0   0.0   0.0   0.0
1  3.0    NaN   NaN   NaN   NaN
2  1.0    NaN   NaN   NaN   NaN
3  3.0    NaN   NaN   NaN   NaN
4  1.0    NaN   NaN   NaN   NaN
row= pd.Series([3, 1, 3, 1])
dataset = dataset.append(row, ignore_index=True )

   time  cost  mult  class    0    1    2    3
0   0.0   0.0   0.0    0.0  NaN  NaN  NaN  NaN
1   NaN   NaN   NaN    NaN  3.0  1.0  3.0  1.0

共有1个答案

水飞掣
2023-03-14

一种选择是将列表显式地转换为PD.Series:

In [46]: dataset.append(pd.Series(row, index=dataset.columns), ignore_index=True)
Out[46]:
   time  cost  mult  class
0     0     0     0      0
1     3     1     3      1

您也可以通过dict在本地完成:

In [47]: dataset.append(dict(zip(dataset.columns, row)), ignore_index=True)
Out[47]:
   time  cost  mult  class
0     0     0     0      0
1     3     1     3      1

您遇到的问题是,Other需要是DataframeSeries(或其他类似dict的对象)或Dataframes或Serieses的列表,而不是整数列表。

 类似资料:
  • 我有一个CSV文件,有三列:col1,col2,col3。我试图在这个文件中附加一个只包含col2的数据框 结果是: 我希望: 有可能以某种方式实现这一点吗?

  • 我想根据不同的模块登录不同的应用程序... 我有3个附件:控制台,一个用于记录控制器和服务的滚动文件,另一个用于记录作业中的某些内容的滚动文件。我只想为其滚动文件记录作业的代码,并只使用另一个滚动文件记录控制器和服务。 这是我的grails log4j配置: 使用此配置,日志将写入两个滚动文件和标准输出。如果从根目录中删除滚动附加器,滚动文件将保持为空,即使为文件组指定了附加器。 有人建议将日志分

  • 我有一个1.5GB.dat文件需要作为pandas数据帧导入,我遇到了内存问题(8GB RAM)。如何将dat文件分解成块来执行分析?

  • 问题内容: 假设我有一个用户活动日志,我想生成一个总持续时间和每天唯一身份用户数量的报告。 汇总持续时间非常简单: 我想做的是同时计算持续时间并计算不重复次数,但我似乎找不到count_distinct的等效项: 这可行,但是肯定有更好的方法,不是吗? 我在想,我只需要提供一个将Series对象的不同项目的计数返回给聚合函数的函数,但是我对各种库的接触并不多。另外,似乎groupby对象已经知道此

  • 问题内容: 如果“文件名”不存在,我想使用pd.write_csv写入“文件名”(带有标题),否则,如果存在“文件名”,则附加到文件名中。如果我只使用命令: 写入或追加成功,但似乎每次进行追加时都会写入标头。 如果文件不存在,如何只添加标题,如果文件存在,如何不添加标题而追加标题? 问题答案: 不确定熊猫是否有办法,但是检查文件是否存在将是一种简单的方法: