由于性能,我不得不将数据分成几个数据帧。每帧有300列和800.000行。
数据帧被命名为df0,df1 ... df29。
我是这样创建它们的:
for j in range (0,30):
globals()['df' + str(j)] = pd.read_parquet('C:\\Users\\helle\\Documents\\Jenny_Analytics\\train.parquet', columns=chunks[j])
现在,我要检查所有数据帧的数据质量,并且要执行以下操作:
df_describeAll = pd.DataFrame(columns=["Dataframe","Count"])
df_describeAll.head()
for j in range (0,29):
cnt=df{j}.count()
for i in range (0,cnt.size):
if cnt[i] <800000:
df_describeAll["Dataframe"]='df' + str(j)
df_describeAll["Count"]=df.count()
我当前的问题是cnt=df{j}.count()
,我也尝试过['df' + str(j)].count()
,但它从未将变量识别为数据帧。如果我尝试使用df0.count()
或df10.count()
,它将返回预期的序列。
所以我要做的是遍历所有数据帧,并在列数低于800.000时将它们放入我的df_describeAll
中。
我认为我正在滥用全局变量,我将非常感谢您的帮助!预先感谢
答案 0 :(得分:0)
只需将它们加载到列表中,然后按索引对其进行访问:
dfs = [pd.read_parquet('C:\\Users\\helle\\Documents\\Jenny_Analytics\\train.parquet', columns=chunks[j]) for j in range (0,30)]
for j in range(0,29):
cnt = dfs[j].count()
...