Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为表中的每一行计算具有某些值的列数_Python_Pandas_Dataframe - Fatal编程技术网

Python 为表中的每一行计算具有某些值的列数

Python 为表中的每一行计算具有某些值的列数,python,pandas,dataframe,Python,Pandas,Dataframe,我有这样的数据框, 数据: 我想计算一些有值的列,但是没有。 期望输出: Site code Col1 Col2 Col3 Count A5252 24 53 NaN 2 A5636 36 NaN NaN 1 A4366 NaN NaN NaN 0 A7578 42 785 24 3 与此相关的内容: df=data.isnull().sum(轴

我有这样的数据框, 数据:

我想计算一些有值的列,但是没有。 期望输出:

 Site code   Col1  Col2  Col3  Count
    A5252     24    53     NaN    2
    A5636     36    NaN    NaN    1
    A4366     NaN   NaN    NaN    0
    A7578     42    785    24     3
与此相关的内容: df=data.isnull().sum(轴=1)

需要更改为:

或使用功能:

通过(
站点代码
选择列的另一个解决方案是列,而不是
索引
):

使用的另一个好主意:

简单使用
notnull()

此外,要向数据帧添加列,只需使用:

df['new_column_name'] = newcolumn
输出:

Site code   Col1  Col 2  Col3  count
    A5252     24    53     NaN    2
    A5636     36    NaN    NaN    1
    A4366     NaN   NaN    NaN    0
    A7578     42    785    24     3

或者在列名称已知但顺序可能不为的情况下,作为上一个示例的轻微替代:
df.filter(regex=“^Col”)
data = data.set_index('Site code')
data['Count'] = data.count(axis=1)
print (data)
           Col1   Col2  Col3  Count
Site code                          
A5252      24.0   53.0   NaN      2
A5636      36.0    NaN   NaN      1
A4366       NaN    NaN   NaN      0
A7578      42.0  785.0  24.0      3
print (data.loc[:, 'Col1':])
   Col1   Col2  Col3
0  24.0   53.0   NaN
1  36.0    NaN   NaN
2   NaN    NaN   NaN
3  42.0  785.0  24.0

data['Count'] = data.loc[:, 'Col1':].count(axis=1)
print (data)
  Site code  Col1   Col2  Col3  Count
0     A5252  24.0   53.0   NaN      2
1     A5636  36.0    NaN   NaN      1
2     A4366   NaN    NaN   NaN      0
3     A7578  42.0  785.0  24.0      3
data['Count'] = data.filter(regex="^Col").count(axis=1)
print (data)

  Site code  Col1   Col2  Col3  Count
0     A5252  24.0   53.0   NaN      2
1     A5636  36.0    NaN   NaN      1
2     A4366   NaN    NaN   NaN      0
3     A7578  42.0  785.0  24.0      3
import pandas as pd
df = pd.read_csv("your_csv.csv")

df['count'] = df.notnull().sum(axis=1)

print(df)
df['new_column_name'] = newcolumn
Site code   Col1  Col 2  Col3  count
    A5252     24    53     NaN    2
    A5636     36    NaN    NaN    1
    A4366     NaN   NaN    NaN    0
    A7578     42    785    24     3