我注意到在Pandas DataFrame中选择一个列的三种方法:
使用loc选择列的第一种方法:
df_new = df.loc[:, 'col1']
Run Code Online (Sandbox Code Playgroud)
第二种方法 - 看起来更简单,更快捷:
df_new = df['col1']
Run Code Online (Sandbox Code Playgroud)
第三种方法 - 最方便:
df_new = df.col1
Run Code Online (Sandbox Code Playgroud)
这三种方法有区别吗?我不这么认为,在这种情况下我宁愿使用第三种方法.
我很好奇为什么似乎有三种方法可以做同样的事情.
A B
DATE
2013-05-01 473077 71333
2013-05-02 35131 62441
2013-05-03 727 27381
2013-05-04 481 1206
2013-05-05 226 1733
2013-05-06 NaN 4064
2013-05-07 NaN 41151
2013-05-08 NaN 8144
2013-05-09 NaN 23
2013-05-10 NaN 10
Run Code Online (Sandbox Code Playgroud)
说我有上面的数据框.获得具有相同索引的系列的最简单方法是什么,即A列和B列的平均值?平均需要忽略NaN值.扭曲的是,此解决方案需要灵活地向数据框添加新列.
我最接近的是
df.sum(axis=1) / len(df.columns)
Run Code Online (Sandbox Code Playgroud)
但是,这似乎并没有忽略NaN值
(注意:我对熊猫图书馆还有点新意,所以我猜这有一种明显的方法可以做到这一点,我的有限大脑根本就没有看到)
我正在尝试查找数据集中其中一列中所有值的平均值.我做了df ["column"].mean()但是它给了我一个可笑的大数字,考虑到我的价值有多小,这个数字没有意义.但是,min()和max()函数运行正常.
为了澄清,第一个单元格中输出的左侧是索引,右侧是值.
delay["If Delayed, for how long?"].astype(int)
print(delay["If Delayed, for how long?"].min())
print(delay["If Delayed, for how long?"].max())
print(delay["If Delayed, for how long?"].mean()
Run Code Online (Sandbox Code Playgroud)