怎么判断dataframe中某一列的所有值 有哪些在另一个dataframe中的某一列
时间: 2023-08-30 17:06:07 浏览: 86
要判断dataframe中某一列的所有值有哪些在另一个dataframe中的某一列,可以使用`isin()`函数结合`unique()`函数。示例如下:
假设有两个dataframe:df1和df2,现在要判断df1的'col1'列的所有值有哪些在df2的'col2'列中出现过,可以使用以下代码:
```python
df1['col1'].isin(df2['col2']).unique()
```
这个代码返回的是一个布尔类型的数组,其中True表示对应的df1['col1']中的值在df2['col2']中出现过,False表示没有出现过。使用`unique()`函数可以将这个数组中的唯一值取出来,即True和False,这样就能得到df1的'col1'列中所有出现过的值。
如果想要将这些值作为一个新的dataframe返回,可以使用以下代码:
```python
pd.DataFrame(df1['col1'].isin(df2['col2']).unique(), columns=['col1'])
```
这个代码返回的是一个只有'col1'列的dataframe,其中每个值表示df1['col1']中的某个值是否在df2['col2']中出现过。
相关问题
怎么判断dataframe中某一列的值 是否在另一个dataframe中的某一列
可以使用`isin()`函数来判断dataframe中某一列的值是否在另一个dataframe中的某一列。示例如下:
假设有两个dataframe:df1和df2,现在要判断df1的'col1'列的值是否在df2的'col2'列中,可以使用以下代码:
```python
df1['col1'].isin(df2['col2'])
```
这个函数返回一个布尔类型的Series,如果df1['col1']中的某个值在df2['col2']中出现,则返回True,否则返回False。
如果想要返回df1中在df2中出现过的行,可以使用以下代码:
```python
df1[df1['col1'].isin(df2['col2'])]
```
dataframe用某一列的值填充另一列NA
可以使用`fillna`方法来实现,例如将DataFrame中的列B中的NA值使用列A中的值进行填充,可以使用以下代码:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, None, 8]})
df['B'] = df['B'].fillna(df['A'])
```
这将会把列B中的NA值用列A中的对应值进行填充。
阅读全文