【发布时间】:2017-01-28 22:00:42
【问题描述】:
目前我有一个通过列表理解运行的数据框列表。结果是所有具有或不具有在列表理解中限定函数的行的数据帧。我只想打印出非空的df。这有可能吗?另外,是否也可以打印出数据框的名称?
例子:
N = 5
np.random.seed(0)
df1 = pd.DataFrame(
{'X':np.random.uniform(0,5,N),
'Y':np.random.uniform(0,5,N),
'Z':np.random.uniform(0,5,N),
})
df2 = pd.DataFrame(
{'X':np.random.uniform(-5,0,N),
'Y':np.random.uniform(-5,0,N),
'Z':np.random.uniform(-5,0,N),
})
def func_sel(df):
return df[df['X'] > 0]
dfs_list = [df1, df2]
dfs_sel = [func_sel(x) for x in dfs_list]
dfs_sel
Out[14]:
[ X Y Z
0 2.744068 3.229471 3.958625
1 3.575947 2.187936 2.644475
2 3.013817 4.458865 2.840223
3 2.724416 4.818314 4.627983
4 2.118274 1.917208 0.355180, Empty DataFrame
Columns: [X, Y, Z]
Index: []]
编辑: 我在这里需要的是 df1 仅以“df1”作为某种标签显示。
【问题讨论】:
-
你在
dfs_sel = [func_sel(x) for x in dfs_list if len(x)]之后吗? -
我已经进行了编辑。