2个dataframe 各一列数据取有包含关系的
时间: 2024-05-06 14:17:16 浏览: 106
如果你想要找到两个DataFrame各自的一列数据中有包含关系的数据,可以使用str.contains()方法来实现。下面是一个示例代码:
```python
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'A': ['apple', 'orange', 'banana', 'pear']})
df2 = pd.DataFrame({'B': ['pineapple', 'orange juice', 'banana smoothie', 'pear cider']})
# 使用str.contains()方法查找有包含关系的数据
result = df1[df1['A'].str.contains('|'.join(df2['B'].tolist()))]
# 输出结果
print(result)
```
这段代码中,我们首先创建了两个DataFrame,其中df1有一列数据为['apple', 'orange', 'banana', 'pear'],df2有一列数据为['pineapple', 'orange juice', 'banana smoothie', 'pear cider']。我们使用str.contains()方法查找df1中有哪些数据包含在df2的数据中,最后将结果打印出来。在本例中,结果为:
```
A
1 orange
2 banana
3 pear
```
可以看到,结果中包含了df1中的所有数据,因为它们都能在df2中找到包含它们的数据。
相关问题
dataframe增加一列数据
在Python中使用pandas库创建DataFrame对象,可以方便地对数据进行处理和操作。当需要向DataFrame中增加一列数据时,可以使用赋值的方式给DataFrame添加新的列,举例如下:
假设有如下DataFrame对象df:
```
import pandas as pd
data = {'name':['David', 'Alice', 'Bob', 'Charlie'],
'age':[25, 32, 18, 47],
'gender':['M', 'F', 'M', 'M']}
df = pd.DataFrame(data)
```
现在,我们需要在df中增加一列score,其值为[85, 90, 70, 95],可以通过以下代码实现:
```
new_column = [85, 90, 70, 95]
df['score'] = new_column
```
分析代码可知,先定义了一个列表new_column,里面包含需要添加的新列数据。然后使用df['score'] = new_column这行代码进行赋值,其中score为新列的列名。
此时,DataFrame对象df就新增了一列score,最终结果为:
```
name age gender score
0 David 25 M 85
1 Alice 32 F 90
2 Bob 18 M 70
3 Charlie 47 M 95
```
pandas dataframe 将一列数据插入到一个dataframe对象的指定列
可以使用以下代码将一列数据插入到指定列中:
```python
import pandas as pd
# 创建一个dataframe对象
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# 定义要插入的列数据
new_col = [7, 8, 9]
# 插入数据到指定列
df.insert(loc=1, column='C', value=new_col)
print(df)
```
在上述代码中,我们首先创建了一个名为`df`的dataframe对象,其中包含两列数据`A`和`B`。然后,我们定义一个包含新列数据的列表`new_col`,并使用`insert()`函数将其插入到了`df`对象的第二列(位置`1`)中,新的列名为`C`。最后,我们打印了修改后的dataframe对象。
阅读全文