Pandas在DF创建期间添加额外的空列(Pandas add additional empty columns during DF creation)

我越来越:

AssertionError: 14 columns passed, passed data had 12

columns.

错误是不言自明的,我正在从列表列表中创建一个DataFrame,每个列表实际上包含12个字段。 如何强制pandas.DataFrame在一次操作中添加带NaN的额外列。 这就是我创建df的方式。

pandas.DataFrame(results, columns=FIELDS)

有没有办法在DataFrame创建中简化这一点,而不必这样做:

pandas.DataFrame(results, columns=FIELDS_12)

df["ExtraField13"] = np.nan

df["ExtraField14"] = np.nan

I'm getting:

AssertionError: 14 columns passed, passed data had 12

columns.

Error is self-explanatory, I'm creating a DataFrame from a list of lists, each list in fact contains 12 fields. How can I force pandas.DataFrame to add extra columns with NaN in one operation. This is how Im creating the df.

pandas.DataFrame(results, columns=FIELDS)

Is there a way to simplify this in DataFrame creation, without having to do this:

pandas.DataFrame(results, columns=FIELDS_12)

df["ExtraField13"] = np.nan

df["ExtraField14"] = np.nan

原文:https://stackoverflow.com/questions/42238024

2020-02-27 23:56

满意答案

好吧,你不需要像上面那样用逐行的单独列分配硬编码。 这做了类似的事情,但使用循环代替填充列:

>>> import pandas as pd

>>> df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})

>>> df

A B

0 1 4

1 2 5

2 3 6

>>> def pad_cols(df, n_cols):

... while len(df.columns) < n_cols:

... df['padded' + str(len(df.columns)+1)] = None

... return df

...

>>> pad_cols(df, 4)

A B padded3 padded4

0 1 4 None None

1 2 5 None None

2 3 6 None None

Well, you don't really have to hard-code things like you have above with individual column assignments, line-by-line. This does a similar thing but uses a loop instead to pad columns:

>>> import pandas as pd

>>> df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})

>>> df

A B

0 1 4

1 2 5

2 3 6

>>> def pad_cols(df, n_cols):

... while len(df.columns) < n_cols:

... df['padded' + str(len(df.columns)+1)] = None

... return df

...

>>> pad_cols(df, 4)

A B padded3 padded4

0 1 4 None None

1 2 5 None None

2 3 6 None None

2017-02-14

相关问答

我想使用DataFrame ctor进行连接: In [23]:

df = pd.DataFrame(columns=['A'])

df

Out[23]:

Empty DataFrame

Columns: [A]

Index: []

In [24]:

pd.concat([df,pd.DataFrame(columns=list('BCD'))])

Out[24]:

Empty DataFrame

Columns: [A, B, C, D]

Index: []

因此,通过传递一个包...

这是一种方法。 根据您的数据,这可能会混合类型(例如,如果一列是时间戳)。 此外,这会重置您的指数。 mega = pd.DataFrame(np.random.randn(3,3), columns=list('ABC'))

indexRow = pd.DataFrame({col: [n] for n, col in enumerate(mega)})

>>> pd.concat([indexRow, mega], ignore_index=True)

A ...

你的方法可能很慢,因为它没有矢量化。 这是另一种方法: temp = df['col_1'].astype(str)

df = df.assign(col_2='Other', col_3='Other')

df.loc[temp.str[0] == '9', ['col_2', 'col_3']] = ('some_text_4 ', 'other_text_4')

df.loc[temp.str[0:2] == '67', ['col_2', 'col_3']] = ('some_text_3...

注释中发布的AttributeError非常重要 - 您有一个Series,相当于一个列,而不是DataFrame。 main_df.to_frame()

将返回一个数据帧,然后您可以重命名列并添加新列。 That AttributeError posted in the comments is important – you have a Series, equivalent to a single column, not a DataFrame. main_df.to_frame()

wi...

这是另一种使用numpy select (这里的文档)的方法 ,它具有非常干净的语法: df['D'] = np.select( [ df.A < 1.5, df.A > 2.5 ],

[ df.B + df.C, df.B * df.C ], default=0 )

A B C D

1 1 4 7 11

2 2 5 8 0

3 3 6 9 54

无论如何它默认为零,但我补充说完整性。 我想在@ DSM或@H...

使用dplyr和tidyr解决方案。 library(dplyr)

library(tidyr)

dt2 %

mutate(condition = 1) %>%

spread(loc, condition, fill = 0)

dt2

# file_name chr1:62161618:62162663:- chr1:62161618:62162669:-

# 1 rep1 1 ...

你可以试试这个: # names of columns in df2 that are not in df1

cols

# ...or

cols

# add cols from d2 to df1

df3

# set cols from df1 to ...

建立 df1

terms code1 code2 code3

0 term1 1234x 2345x 3456x

1 term2 4321y 5432y 6543y

df2

name rate location code

0 Dan 3 FL 4444g

1 Sara 3.5 OH 6543y

2 Conroy 5.2 NM 2345x

以空间为代价,一种快速的方法是生成两个映射,然后...

好吧,你不需要像上面那样用逐行的单独列分配硬编码。 这做了类似的事情,但使用循环代替填充列: >>> import pandas as pd

>>> df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})

>>> df

A B

0 1 4

1 2 5

2 3 6

>>> def pad_cols(df, n_cols):

... while len(df.columns) < n_cols:

... df['pad...

相关文章

在菜单中 增加了 click点击事件,事件代码如下: 'click' : function(n){

...

mlzboy@mlzboy-mac:/var$ ls -al 总用量 4048 drwxr-xr-x

...

[A] aaa accounting delay-start [12.1] [hidden] gl

...

先看示例: ${user.name?if_exists }, ${user.name?default(

...

用过struts的标签,也接触过spring的标签,不过我个人觉得el表达式是最好用的。el表达式判断

...

新增一个节点6383,并启动 执行redis-trib.rb add-node命令添加节点 redi

...

DecimalFormat是NumberFormat的一个具体子类,用于格式化十进制数字。 在日常开发

...

啥也不说鸟,上代码,只要页面引用了相应的ext的js库,就能运行: Ext.onReady(func

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

pandas 插入空列_Pandas在DF创建期间添加额外的空列(Pandas add additional empty columns during DF creation)...相关推荐

  1. R语言计算累积平均值(Cumulative Average)、使用cumsum函数和seq_along函数计算data.frame指定数据列的累积平均值、并添加累积平均值数据列

    R语言计算累积平均值(Cumulative Average).使用cumsum函数和seq_along函数计算data.frame指定数据列的累积平均值.并添加累积平均值数据列 目录

  2. SQLite在指定列后面插入字段_excel:批量插入任意空列,隔列插入空列,隔任意列插入空列...

    上期讲解了隔行插入空行,今天我们将讲解下如何批量插入空列,已经如何隔列插入空行,隔任意列插入空行.我们在遇到重复操作问题的时候,应该先想想有没有批量操作的办法,而不是手工一列列的插入. 1.批量插入任 ...

  3. Pandas的学习(6.DataFrame和Series创建多层行索引以及多层列索引)

    1.创建多层行索引 (1) 隐式构造         最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组 -- Series也可以创建多层索引 import numpy a ...

  4. python解决数据框中添加一行或者一列(DataFrame的行列处理)

    1.解决数据框中添加一行(给定值) ###原数据框data_Peak_2 = pd.DataFrame({"Peak_density": np.ndarray.tolist(hma ...

  5. 【优化】COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名)

    [优化]COUNT(1).COUNT(*).COUNT(常量).COUNT(主键).COUNT(ROWID).COUNT(非空列).COUNT(允许为空列).COUNT(DISTINCT 列名) 1. ...

  6. pandas中如何选取某几列_pandas 选取行和列数据的方法

    本文介绍在 pandas 中如何读取数据行列的方法.数据由行和列组成,在数据库中,一般行被称作记录 (record),列被称作字段 (field).回顾一下我们对记录和字段的获取方式:一般情况下,字段 ...

  7. python pandas 增加一列_pandas删除行删除列增加行增加列的实现

    创建df: >>> df = pd.DataFrame(np.arange(16).reshape(4, 4), columns=list('ABCD'), index=list(' ...

  8. pandas打印某一列_Pandas速查手册中文版

    笑虎:Pandas速查手册中文版 笑虎 不想当产品的程序员不是好的数据分析师! 本文翻译自文章:Pandas Cheat Sheet - Python for Data Science,同时添加了部分 ...

  9. chm 能插入公式吗_批量提取表格名称、插入空列,教你三下五除二秒速完成!...

    点击上方蓝字关注星标★不迷路 本文作者:黄群金本文编辑:小叮.竺兰每天和表哥表姐们打交道,发现他们问的大多数问题,都是怎么整理数据和表格.活生生的表格搬运工~原本要花很多时间才能搞定的工作,其实只要用 ...

最新文章

  1. webpack打开项目命令_webpack前端模块打包工具基本使用的详细记录(一)
  2. c++反射机制(vcl实现),mfc可依样实现
  3. 智慧政务解决方案(28页)pdf_【金众电子】智慧政务解决方案
  4. docker时区问题
  5. web前端学习之HTML
  6. java获取月末日期_Java获取时间年、月、日的方法
  7. 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现
  8. python正交表运用
  9. 春节要闻回顾 | 数字人民币和元宇宙被搬上春晚;美国财政部报告警告NFT可用于洗钱...
  10. 玩转GD32F3x0开发板 (二)
  11. 人工智能如何自我进化
  12. 基于C++的web服务器---总述篇
  13. PHP微信根据订单号查询支付结果,9. PHP接入微信支付订单、退款订单、转款订单的查询...
  14. 【每日最爱一句】2013.06.10
  15. PO系列之 PO接口在ECC中的开发
  16. 计算机领域哪个证值钱,最值钱且相对好考的证书有哪些?
  17. PCIe扫盲——热插拔简要介绍
  18. Python代码实现飞机大战
  19. 一刀工具箱- 在线AI智能写诗工具
  20. 树莓派 EC20 mini pcie 开机自动拨号

热门文章

  1. 笔记整理之 寒门难出贵子1 正传
  2. LODOP打印控件使用问题总结
  3. 金额数字转换(小写转大写)
  4. java-php-python-ssm新生报到管理计算机毕业设计
  5. 科维的时间管理法—《可以量化的管…
  6. 如何解决HEVC编码格式不能播放的问题?
  7. Uos统信系统 SSH
  8. 苹果6设置流量显示无服务器,超实用!15个苹果手机的隐藏功能,不看你手机就白买了!...
  9. 累加器A用c语言,在c语言数组累加器的使用
  10. 1688-cat_get - 获得1688商品分类