从列表中只将指定的列传递到Pandas数据框架。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从列表中只将指定的列传递到Pandas数据框架。相关的知识,希望对你有一定的参考价值。

在Python中我有以下列表

myList = [datetime.datetime(2020, 5, 16, 0, 15), '9387.95000000', '9418.96000000', '9386.22000000', '9406.76000000', '138.33460500', 1589581199999, '1300408.00793448', 2156, '88.84298900', '835174.15438128', '0'], [datetime.datetime(2020, 5, 16, 0, 20), '9407.03000000', '9437.65000000', '9405.96000000', '9429.36000000', '190.78911000', 1589581499999, '1797685.31006086', 2454, '100.00883200', '942460.13231483', '0', ...]

我试图用它来创建一个Pandas数据框架,以下是我的尝试。

df = pd.DataFrame(Result, columns=['Date', 'Open', 'High', 'Low', 'Close', 'Volume'])

这将给我以下错误。

AssertionError: 6 columns passed, passed data had 12 columns

我怎样才能只把列表中的前6个元素传给数据框架,这样我就不会出现这个错误了?先谢谢你

答案

在列表理解中过滤前6个值。

df = pd.DataFrame([x[:6] for x in myList], 
                  columns=['Date', 'Open', 'High', 'Low', 'Close', 'Volume'])
print (df)
                 Date           Open           High            Low  
0 2020-05-16 00:15:00  9387.95000000  9418.96000000  9386.22000000   
1 2020-05-16 00:20:00  9407.03000000  9437.65000000  9405.96000000   

           Close        Volume  
0  9406.76000000  138.33460500  
1  9429.36000000  190.78911000  

以上是关于从列表中只将指定的列传递到Pandas数据框架。的主要内容,如果未能解决你的问题,请参考以下文章

将提取的列附加到没有索引的列表中:Pandas

Python:将列表写入 Pandas 中的列

有啥方法可以扩展包含列表的 pandas Dataframe 中的列并从列表值本身中获取列名?

Django:从 Pandas 到 Django Rest 框架的模型查询集

将包含字符串和 NAN 的列转换为 Pandas 中的整数列表

当日期和时间在不同的列中时,将数据从 csv 读取到 pandas