如何计算 python 中数据框中的行数?

how to count rows in a data frame in python?

import numpy as np
import pandas as pd 

year=np.array([1851.203,1851.632,1851.969,1851.975,1852.314,1852.347,1852.358,1852.385,1852.977,1853.196,1853.229,1853.319,1853.5,1854.135,1856.396,1856.506,1856.539,1856.618,1857.138,1857.404])
coal=pd.DataFrame(year)

def disaster(year1,year2):
    disaster = (coal >= year1) & (coal <= year2)
    print year.sum()

disaster(1852,1856)
>>>360806.155

我想编写一个函数来计算两年之间的年数。就像当我输入 1852,1856 年时,它会添加所有年份,但我想要在该间隔之间有多少行(整数)。

比如1851是四次,1852是5次,当我输入区间(1851,1852)时,它会总结并给出9。我想要任何两年。

有人可以帮忙吗?

我已经根据一些假设修改了您的代码。我想你想做的是用你的掩码掩码到原来的 df 中,打印或得到总和,另外得到长度。要获得您需要使用带有原始 df 的掩码的长度,请调用 dropna() 删除 NaN 行,然后在结果 df:

上调用 len
In [16]:

year=np.array([1851.203,1851.632,1851.969,1851.975,1852.314,1852.347,1852.358,1852.385,1852.977,1853.196,1853.229,1853.319,1853.5,1854.135,1856.396,1856.506,1856.539,1856.618,1857.138,1857.404])
coal=pd.DataFrame(year)

def disaster(year1,year2):
    total = (coal >= year1) & (coal <= year2)
    print (coal[total].sum())
    print(len(coal[total].dropna()))

disaster(1852,1856)
0    18529.76
dtype: float64
10
def disaster(year1,year2):
    return  np.sum((coal >= year1) & (coal <= year2+1))

print disaster(1851,1852)

>>> 
0    9
dtype: int64