我有以下格式的输入数据集输入数据格式 输入数据由以下代码段生成。 我希望将它们添加到以下格式的数据框中。 输出数据格式 我尝试了几个示例,但都没有用,该怎么办? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在尝试将一组pandas
数据帧转换为唯一列表,
这是我到目前为止得到的:
import pandas as pd
df1= pd.DataFrame(data={'col1': [1, 2, 5], 'col2': [3, 4, 4]})
df2 = pd.DataFrame(data={'col3':[1,2,3,4,5], 'col4':[1,2,'NA', 'NA', 'NA'], 'col5':['John', 'Mary', 'Gordon', 'Cynthia', 'Marianne']})
df3 = pd.DataFrame(data={'col6':[19, 25,20, 23]})
#### attempt to convert into a list ####
df_list = list(df1, df2, df3)
错误:
TypeError: list 最多期望 1 arguments,得到 3
预期的 output 应该返回索引的 dataframe 名称作为列表的元素,类似于print(df_list['df1'])
将返回df1
列和行。
有没有办法完成这个任务?
此处使用list()
是不正确的,因为它不会将 arguments 分组到列表中。 您可以改为使用[]
:
df_list = [df1, df2, df3]
但是list
不能用名称索引,所以你可能想要一个dict
:
df_dict = {'df1':df1, 'df2':df2, 'df3':df3}
然后你可以做df_dict['df1']
。
请注意,您无法以编程方式使用变量名称( df1
、 df2
、 df3
)来构造用于访问它们的字符串( 'df1'
、 'df2'
、 'df3'
)。
不能将字符串索引与 python 中的list
一起使用。 列表具有从0
到len(my_list)-1
的数字索引。
如果您要使用list()
调用本身,它需要一个iterable
变量:
>>> help(list)
class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items
因此,您可以构造一个元组并将其传递给list()
class ,例如:
>>> my_list = list((df1, df2, df3))
>>> type(my_list)
<class 'list'>
>>> my_list[0]
... df1 outputs here ...
但更简单、更简洁的方法是使用方括号表示法:
>>> my_list = [df1, df2, df3]
>>> type(all_dataframes)
<class 'list'>
但是,如果您想使用字符串索引,请考虑使用字典,即dict
class:
>>> help(dict)
class dict(object)
| dict() -> new empty dictionary
| dict(mapping) -> new dictionary initialized from a mapping object's
| (key, value) pairs
| dict(iterable) -> new dictionary initialized as if via:
| d = {}
| for k, v in iterable:
| d[k] = v
| dict(**kwargs) -> new dictionary initialized with the name=value pairs
| in the keyword argument list. For example: dict(one=1, two=2)
|
| Methods defined here:
|
直接调用dict()
class ,你会想要这样的:
>>> all_dataframes = dict(("df1", df1), ("df2", df2), ("df3", df3))
>>> type(all_dataframes)
<class 'dict'>
>>> all_dataframes["df1"]
... df1 output prints here ...
但是,更简单和更清晰的方法是:
>>> all_dataframes = {"df1": df1, "df2": df2, "df3": df3}
>>> type(all_dataframes)
<class 'dict'>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.