我想使用for循环创建一个新的数据框。
for (name, series) in Quantitative.iteritems():
data = {'Name': pd.Series(name), 'Count': pd.Series(Quantitative[name].size),
'% Miss.': pd.Series((sum(Quantitative[name].isnull().values.ravel()) / Quantitative[name].size) * 100),
'Card.': pd.Series(Quantitative[name].unique().size), 'Min': pd.Series(Quantitative[name].min()),
'1st Qrt.': pd.Series(Quantitative[name].quantile(0.25)), 'Mean': pd.Series(Quantitative[name].mean()),
'Median': pd.Series(Quantitative[name].median()), '3rd Qrt.': pd.Series(Quantitative[name].quantile(0.75)),
'Max': pd.Series(Quantitative[name].max()), 'Std.': pd.Series(Quantitative[name].std())}
dt = pd.DataFrame(data)
print(pd.DataFrame(dt))
但是,它会创建多个词典。如何将它们合并在一起?
答案 0 :(得分:2)
您无需为dict中的每个项目创建数据框,然后将它们合并。使用列表推导创建行列表并从中创建数据框:
rows = [[
name, series.size, (sum(series.isnull().values.ravel()) / series.size) * 100,
series.unique().size, series.min(), series.quantile(0.25), series.mean(),
series.median(), series.quantile(0.75), series.max(), series.std()
] for name, series in Quantitative.iteritems()]
dt = pd.DataFrame(
rows,
columns=['Name', 'Count', '% Miss.', 'Card.', 'Min', '1st Qrt.',
'Mean', 'Median', '3rd Qrt.', 'Max', 'Std.'])
print(dt)