繁体   English   中英

转换列表中的一组熊猫数据框

Convert a set of pandas dataframes in a list

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想一组转换pandas dataframes成一个独特的名单,

这是我到目前为止所得到的:

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)

错误:

类型错误:列出最多 1 个参数,得到 3 个

预期的输出应该返回索引数据帧名称作为列表的元素,类似于print(df_list['df1'])将返回df1列和行。

有没有办法完成这个任务?

2 个回复

list()的使用在这里是不正确的,因为它没有将参数分组到一个列表中。 您可以改为使用[]

df_list = [df1, df2, df3]

但是list不能用名称索引,所以你可能需要一个dict

df_dict = {'df1':df1, 'df2':df2, 'df3':df3}

然后你可以做df_dict['df1']

请注意,您无法以编程方式使用变量名称df1df2df3 )来构造用于访问它们的字符串( 'df1''df2''df3' )。

在 python 中无法将字符串索引与list一起使用。 列表具有从0len(my_list)-1数字索引。

如果您要使用list()调用本身,则它需要一个iterable变量:

>>> help(list)

class list(object)                                                 
 |  list() -> new empty list                                       
 |  list(iterable) -> new list initialized from iterable's items   

因此,您可以构造一个元组并将其传递给list()类,例如:

>>> 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类:

>>> 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()类,你会想要这样的东西:

>>> 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'>
2 如何在熊猫数据框中乘以一组列

我有一个pandas数据框和一个列表,如下所示。 我想乘以cols的选定列,并将其添加为数据框中的单独列。 IE, 我尝试使用multiply功能来执行此操作,如下所示。 df[n1].multiply(df[n2]) 但是,只有2 columns时,这很容易。 假设我在cols列表中有 ...

2019-04-16 17:23:35 2 73   pandas
3 如何在熊猫数据框中比较一组中的多行?

我想比较一组中的所有行,以找到事件的正确顺序。 我的样本数据框具有类似的结构: 通过将Prev_Event与Current_Event进行比较和匹配,该数据点的相应时间戳通过加1 s来修改。 但是,如果时间戳记值与先前的数据点不同,那么我想保留原始时间戳记。 注意:我的数据存在 ...

4 根据一组条件从熊猫数据框中获取值

我有一个如下所示的数据框 我正在尝试根据特定条件获取行,即将标签Number与最近的capital即Berlin相关联 或类似的东西: 伪逻辑 首先检查带有label:的行label: Number然后(假设城市总是高于或低于“2 行”)并具有label: Capital 。 但是, l ...

5 将一组数据框行的列值转换为列中的列表

对于这个问题,让我们以下面的例子为例。 我有一个如下所示的数据df.head() ): 如您所见,组按Interval列排列。 我知道熊猫有一个df.groupby(colname) ,但我希望做的是对间隔行进行分组,以便将列值列在一起。 这将给出一个示例输出,如下所示: 如您所见,所需的最 ...

7 哪个更符合熊猫的习惯:扩展一组列表并从这些列表中创建一个数据框,或者创建一个数据框并附加行?

上下文:我目前正在分析数据集并尝试利用拆分-应用-组合范例。 一旦我对数据集进行分组,我就可以添加一些在分组之前没有意义的列。 然后,我想查看分组数据框中的这些新列,并在一个新的组合数据框中收集它们的值,以计算一些指标并提供输出。 这引出了我的问题:我可以通过维护一组列表,扩展每个分组数据框的列表 ...

9 如何为熊猫数据框中的一组行分配组号?

数据框具有一个时间列,该列的int值从零开始。 我想将数据帧分为100组(例如),其中步骤为ts = df['time'].max()/100 。 一种简单的方法是测试'time'列的每个值是否大于t and小于t+ts ,其中t是一个np.linspace向量,该向量从0开始并在df['t ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM