如何计算 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
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