如果这个问题在其他地方得到解答,我很抱歉,但我在这里或其他地方找不到满意的答案是不成功的.
我对python和pandas有点新,并且在将HTML数据导入pandas数据帧时遇到了一些困难.在pandas文档中,它说.read_html()返回一个数据框对象列表,所以当我尝试做一些数据操作来摆脱一些样本时,我得到一个错误.
这是我读取HTML的代码:
df = pd.read_html('http://espn.go.com/nhl/statistics/player/_/stat/points/sort/points/year/2015/seasontype/2', header = 1)
Run Code Online (Sandbox Code Playgroud)
然后我尝试清理它:
df = df.dropna(axis=0, thresh=4)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last): File "module4.py", line 25, in
<module> df = df.dropna(axis=0, thresh=4) AttributeError: 'list'
object has no attribute 'dropna'
Run Code Online (Sandbox Code Playgroud)
如何将这些数据转换为实际的数据帧,类似于.read_csv()的数据框架?
我有几个.parquet文件,每个文件的形状(1126399, 503)和大小为13MB。据我所知和我所读的内容,应该可以在本地计算机上很好地处理它。我试图将它们放入熊猫数据框中以进行一些分析,但这样做很麻烦。将它们保存到CSV文件中的成本太高,因为文件变得非常大,并将它们直接加载到多个数据帧中,然后进行级联会给我带来内存错误。我从来没有使用过.parquet文件,也不确定前进的最佳路径是什么,或者不确定如何使用文件对数据进行实际分析。
一开始,我尝试过:
import pandas as pd
import pyarrow.parquet as pq
# This is repeated for all files
p0 = pq.read_table('part0.parquet') # each part increases python's memory usage by ~14%
df0 = part0.to_pandas() # each frame increases python's memory usage by additional ~14%
# Concatenate all dataframes together
df = pd.concat([df0, df1, df2, df3, df4, df6, df7], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
这导致我的内存不足。我在具有12个核心和32GB内存的系统上运行。我以为我会更高效,并尝试遍历并删除不再需要的文件:
import pandas as pd
# Loop through files and load into a dataframe
df = pd.read_parquet('part0.parquet', engine='pyarrow')
files = …Run Code Online (Sandbox Code Playgroud) 我有以下数据框,并希望将其转换为HTML
Limit Status Warning 3M AVG
VAR1 1.20 1.21216 1.11 1.21235
VAR2 0.82 0.63075 0.75 0.593295
VAR3 0.38 0.376988 0.35 0.376988
VAR4 0.17 0.126987 0.14 0.12461
Run Code Online (Sandbox Code Playgroud)
我想按行格式化此数据框,以便:
Status超过,Warning则整行变为突出显示的黄色,如果超过,Limit则整行变为突出显示的红色VAR2和VAR3具有“{:0.2%}”格式,VAR1并VAR4具有“{:.2f}”我已经研究了熊猫文档,并尝试了几种方法,但无法完成上述所有任务
如果您能提供帮助,我们将不胜感激,因为我认为对于许多熊猫用户而言,明智地格式化数据行是一项挑战。
编辑1:我尝试了以下代码:
df=df.transpose()
df.style.format("{:.2%}").format({"VAR1":"{:.2f},"VAR4":"{:.2f}"})
Run Code Online (Sandbox Code Playgroud)
注意:通过转置数据框,可以轻松完成所有任务,但是由于它是样式器,因此我无法将其转回其原始形状。