获取dataframe中每一行的某几列中非零值的个数
时间: 2024-04-30 13:21:05 浏览: 75
可以使用apply函数,对每一行进行操作。具体实现如下:
假设需要统计的列为col1、col2、col3,可以先定义一个函数:
```python
def count_nonzero(row):
return sum(row[['col1', 'col2', 'col3']] != 0)
```
然后使用apply函数应用到每一行上,并将结果存储到新的一列中:
```python
df['nonzero_count'] = df.apply(count_nonzero, axis=1)
```
这样,就可以得到每一行中非零值的个数,并存储在一个新的列中了。
相关问题
dataframe 某行某几列均相同
如果您想要判断DataFrame中的某一行中的某几列的值是否全部相同,可以使用`nunique`函数来实现。该函数可以返回该行中独特值的数量。如果该行中的某几列值全部相同,则`nunique`函数的返回值应为1。以下是一个示例代码:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [1, 1, 2, 2], 'C': [1, 1, 1, 1]})
# 判断第三行中的'A'和'B'两列的值是否全部相同
if df.loc[2, ['A', 'B']].nunique() == 1:
print("第三行中'A'和'B'两列的值全部相同")
else:
print("第三行中'A'和'B'两列的值不全部相同")
```
如果您需要判断DataFrame中的所有行中的某几列的值是否全部相同,可以使用`apply`函数结合`nunique`函数来实现。以下是示例代码:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [1, 1, 2, 2], 'C': [1, 1, 1, 1]})
# 判断所有行中的'A'和'B'两列的值是否全部相同
result = df[['A', 'B']].apply(lambda x: x.nunique() == 1, axis=1)
print(result)
```
这个示例代码会输出一个`Series`对象,其中每个元素代表对应行中的'A'和'B'两列的值是否全部相同。
dataframe提取某几列建立新的dataframe
您好!要提取某几列建立新的DataFrame,您可以使用以下方法:
```python
import pandas as pd
# 假设您有一个名为df的DataFrame对象,包含多个列
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9], 'D': [10, 11, 12]})
# 提取某几列并建立新的DataFrame
new_df = df[['A', 'C']] # 在方括号内输入要提取的列名
# 打印新的DataFrame
print(new_df)
```
这样,您就可以通过指定要提取的列名,创建一个新的DataFrame对象new_df,其中只包含您所需的列。
希望对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文