Python用pandas提取一行中相同数据的个数
时间: 2024-02-23 07:59:32 浏览: 18
可以使用 pandas 库中的 value_counts() 函数来统计一行中相同数据的个数。具体操作如下:
假设有一个 DataFrame,其中一行数据为:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 2, 3, 3, 4]})
row = df.loc[3]
```
使用 value_counts() 函数来统计相同数据的个数:
```python
counts = row.value_counts()
print(counts)
```
输出结果为:
```
4 2
3 2
2 1
1 1
Name: 3, dtype: int64
```
其中,行索引为数据值,列名为行索引所在的位置。例如,在第 3 行中,数据值 4 出现了两次,数据值 3 出现了两次,数据值 2 出现了一次,数据值 1 出现了一次。
相关问题
Python用pandas提取Excel表中每行数据中指定某个相同数据的个数
可以使用 pandas 库中的 value_counts() 函数和 apply() 函数来统计 Excel 表中每行数据中某个指定相同数据的个数。具体操作如下:
假设有一个 Excel 表格,其中一列名为 `A`,需要统计每行中值为 `2` 的数据出现的次数,可以使用如下代码:
```python
import pandas as pd
# 读取 Excel 表格
df = pd.read_excel('test.xlsx')
# 定义一个函数用于统计每行数据中值为 2 的个数
def count_num(row):
return pd.Series(row).value_counts().get(2, 0)
# 使用 apply() 函数将该函数应用到每一行数据上
df['count_of_2'] = df.apply(count_num, axis=1)
# 输出结果
print(df)
```
其中,`count_num()` 函数用于统计每行数据中值为 2 的个数,并且使用 `pd.Series()` 将每行数据转换为一维的 Series 对象,再使用 `value_counts()` 函数进行统计,最后使用 `get()` 函数获取值为 2 的个数。`apply()` 函数将该函数应用到每一行数据上,并且使用 `axis=1` 参数表示对每一行数据进行操作。最后,将统计结果存储在新的一列中,列名为 `count_of_2`。
输出的结果为一个新的 DataFrame,其中包含每行数据以及每行中值为 2 的个数。
Python用pandas提取Excel表中某几列中每行数据中最大值的重复个数并存入新的一列
可以使用 Pandas 中的 apply 函数结合 lambda 表达式来实现。
假设要提取的 Excel 表格文件名为 "data.xlsx",要提取的列为 "A" 和 "B",要求在新的一列 "Max Count" 中存储每行数据中最大值的重复个数,则可以按照以下步骤操作:
首先,导入 Pandas 库并读取 Excel 表格文件:
```python
import pandas as pd
df = pd.read_excel("data.xlsx")
```
接下来,定义一个函数用于计算每行数据中最大值的重复个数:
```python
def count_max(row):
max_val = max(row["A"], row["B"])
return row[row == max_val].count()
```
然后,使用 apply 函数和 lambda 表达式将该函数应用到每一行数据上,并将结果存储到新的一列 "Max Count" 中:
```python
df["Max Count"] = df.apply(lambda row: count_max(row), axis=1)
```
最后,将处理后的数据保存到 Excel 表格文件中:
```python
df.to_excel("output.xlsx", index=False)
```
这样就能够提取 Excel 表格中某几列中每行数据中最大值的重复个数并存入新的一列了。