df 中按某一字段中的条件统计多个字符串在另一字段中包含的个数 形成新的df
时间: 2025-01-06 14:50:28 浏览: 7
在Python中使用pandas库可以很方便地处理这种需求。假设我们有一个DataFrame `df`,其中包含两个字段:`condition_field`和`text_field`。我们希望根据`condition_field`中的条件,统计`text_field`中包含特定字符串的个数,并将结果存储在一个新的DataFrame中。
以下是一个示例代码:
```python
import pandas as pd
# 示例数据
data = {
'condition_field': ['A', 'B', 'A', 'B', 'A'],
'text_field': ['apple banana cherry', 'banana date', 'apple date', 'cherry date', 'apple banana']
}
df = pd.DataFrame(data)
# 定义要统计的字符串列表
strings_to_count = ['apple', 'banana', 'cherry', 'date']
# 初始化一个字典来存储结果
result = {}
# 遍历每个条件
for condition in df['condition_field'].unique():
# 筛选出符合条件的行
condition_df = df[df['condition_field'] == condition]
# 初始化一个字典来存储每个字符串的计数
string_counts = {}
# 遍历每个字符串并统计其在text_field中的出现次数
for string in strings_to_count:
string_counts[string] = condition_df['text_field'].str.contains(string).sum()
# 将结果存储在result字典中
result[condition] = string_counts
# 将结果转换为新的DataFrame
result_df = pd.DataFrame(result).T
print(result_df)
```
这个代码的输出结果如下:
```
apple banana cherry date
A 3 2 1 1
B 0 1 1 2
```
在这个示例中,我们首先定义了一个包含要统计字符串的列表`strings_to_count`。然后,我们遍历`condition_field`中的每个唯一值,并根据条件筛选出相应的行。接着,我们统计每个字符串在`text_field`中的出现次数,并将结果存储在一个字典中。最后,我们将这个字典转换为一个新的DataFrame `result_df`。
阅读全文