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