有两个dataframe,两个列表有一个共有列,如何把第二个列表中在第一个列表的共有列中不存在的列元素所对应的行删除,给出代码
时间: 2023-06-10 15:02:30 浏览: 73
可以使用 pandas 模块中的 merge() 函数进行操作,具体代码如下所示:
```python
import pandas as pd
# 创建两个 datafame 和列表
df1 = pd.DataFrame({'A': ['a', 'b', 'c', 'd'], 'B': [1, 2, 3, 4]})
df2 = pd.DataFrame({'A': ['b', 'c', 'e', 'f'], 'C': [5, 6, 7, 8]})
lst = ['A']
# 合并两个 dataframe,并删除不存在的元素
merged = pd.merge(df1, df2, on=lst, how='inner')
result = df2[~df2['A'].isin(merged['A'])]
print(result)
```
解释一下代码:
首先,我们导入了 pandas 模块,并创建了两个 dataframe 和一个列表。
接着,我们使用 merge() 函数对两个 dataframe 进行合并。其中,on 参数表示共有列,how 参数表示合并方式(这里使用 inner,即保留两个 dataframe 中都存在的元素)。
最后,我们使用 ~ 符号对删除操作进行取反,即得到不存在的元素所在的行,然后输出结果。
相关问题
在python中构建两个dataframe,第二个dataframe的数据是第一个dataframe的行排序
好的,我了解了您的要求。关于您的问题,可以通过以下代码实现:
```python
import pandas as pd
# 构建第一个dataframe
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 构建第二个dataframe,数据为第一个dataframe的行排序
df2 = df1.sort_index()
# 打印结果
print(df1)
print(df2)
```
希望这个回答对您有所帮助。如果您还有其他问题,请继续提出。
有两个DataFrame,从一个DataFrame中找出与另一个DataFrame相同的值
可以使用 Pandas 的 merge 函数来合并两个 DataFrame,然后找到相同的值。假设第一个 DataFrame 叫做 df1,第二个 DataFrame 叫做 df2,可以按照下面的方式实现:
```python
merged_df = pd.merge(df1, df2)
```
这将返回一个包含两个 DataFrame 共同拥有的行的新 DataFrame。如果你只想找到相同的值而不需要返回整个 DataFrame,可以使用 intersect1d 函数:
```python
common_values = np.intersect1d(df1.values, df2.values)
```
这将返回一个包含相同值的 numpy 数组。注意,这个方法只适用于两个 DataFrame 中的列数相同且每列的数据类型都相同的情况。如果有不同的列或数据类型,则需要进行适当的类型转换和列选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)