创建多个用逗号分隔的空列表
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() 方法时会发生这种情况以上是关于创建多个用逗号分隔的空列表的主要内容,如果未能解决你的问题,请参考以下文章