创建多个用逗号分隔的空列表

Posted

技术标签:

【中文标题】创建多个用逗号分隔的空列表【英文标题】:Creating multiple empty list seperated by comma 【发布时间】:2019-03-07 11:43:47 【问题描述】:

我正在尝试将一些数据帧写入 csv 文件。但是,F 到 N 列应该是空的。这是我使用的数据框:

data = [['a'], ['b'], ['c'], ['d'], ['e'], ['o']]
dataFrame = pandas.DataFrame(data).transpose()

这些字母是为了说明数据应该放在哪一列。例如,'c' 在 C 列下。但是,当前行 'o' 在 F 列下。有没有办法告诉这个数据帧它应该跳过 F 到 N 列并在下面写 'o' O 列?

我认为可以多次写入[], [], [],但这似乎有点不必要。有没有一种聪明的方法可以用逗号分隔多个空列表?和上面的例子一样吗?

感谢阅读。如果有什么不清楚的地方请告诉我!

【问题讨论】:

【参考方案1】:

使用 Pandas 数据框,您想要的东西是不可能的。 Pandas 的名称来源于“面板数据”。因此,它是围绕 NumPy 数组构建的,每个系列或“列”数据一个。导出到 CSV 或 Excel 文件时应跳过的系列不能有“占位符”。

您可以明确地将索引设置为等于您的数据框值,然后将pd.DataFrame.reindex 与字母列表一起使用。如果您有超过 26 列,请参阅Get Excel-Style Column Names from Column Number。

import pandas as pd
from string import ascii_lowercase

data = [['a'], ['b'], ['c'], ['d'], ['e'], ['o']]

df = pd.DataFrame(data)
df.index = df[0]

df = df.reindex(list(ascii_lowercase)).T.fillna('')

print(df[list('abcdefg') + list('mnopqrs')])

0  a  b  c  d  e f g m n  o p q r s
0  a  b  c  d  e          o        

【讨论】:

是否可以使用 python 创建以逗号分隔的 empy 列表? @abdullah94300,是的,但是您没有理由在输入中创建没有意义的空列表。这是一种避免自定义/样板代码的解决方法。正如你提到自己:I assumed that's possible to write [], [], [] many times but this seems a bit unnecessary. 您的回答是解决方法吗?我非常喜欢你的回答。不要误会我的意思 @abdullah94300,是的,这就是我的意思,解决方法就是我的答案。您可以添加空列表,我只是认为这会分散注意力并且最终没有帮助。 我希望我的数据与我在此处作为示例给出的数据不同。我收到以下错误:ValueError: cannot reindex from a duplicate axis。使用 reindex() 方法时会发生这种情况

以上是关于创建多个用逗号分隔的空列表的主要内容,如果未能解决你的问题,请参考以下文章

从 CSV 文件(逗号分隔)创建 postgres 外部表,该文件有一个电子邮件列,其中多个电子邮件地址用逗号分隔

用 jQuery 逗号分隔的错误列表

如何动态生成用逗号分隔的类列表?

如何匹配在linq中具有多个用逗号分隔的整数值的列?

回显逗号分隔列表的PHP表单[关闭]

在一行上用一个赋值命令给多个变量赋值,各变量之间用啥符号分隔