2个dataframe 要删选其中一个dataframe的数据,条件是它某一列的数据不在另一个dataframe某一列中
时间: 2023-11-18 17:10:12 浏览: 70
可以使用 Pandas 中的 isin() 函数来实现。
假设一个 DataFrame 名为 df1,要删选的列名为 col1,另一个 DataFrame 名为 df2,用来比较的列名为 col2,代码如下:
```
df1 = df1[~df1['col1'].isin(df2['col2'])]
```
其中符号 ~ 表示取反,即取不在 df2['col2'] 中的数据行。
这样,就可以得到一个新的 DataFrame,其中不包含 df2['col2'] 中的数据行。
相关问题
2个dataframe 个一列数据其中一个比另一个多的
你好,根据你的描述,我理解为你想要将一个DataFrame中多余的列拷贝到另一个DataFrame中。可以使用 pandas 库来完成这个任务。具体的操作步骤如下:
假设你有两个DataFrame,分别为df1和df2,且df1中有多余的一列数据(列名为“extra_column”),你想将这列数据拷贝到df2中。
1. 首先,你需要确定df1和df2的对应关系,比如通过某一列数据的值进行匹配。假设这一列的名称为“key_column”。
2. 然后,你可以使用 pandas 的 merge 函数将这两个DataFrame合并起来:
```
merged_df = pd.merge(df1[['key_column', 'extra_column']], df2, on='key_column', how='inner')
```
这里使用了 df1[['key_column', 'extra_column']] 来选取需要的列。'how'参数指定使用内连接方式,即只保留两个DataFrame中都存在的行。
3. 最后,你可以将merged_df中的extra_column列拷贝到df2中:
```
df2['extra_column'] = merged_df['extra_column'].values
```
这里使用了 .values 将 pandas.Series 转换为 numpy.ndarray。
这样就完成了将一个DataFrame中多余的一列数据拷贝到另一个DataFrame中的操作。
怎么判断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'])]
```
阅读全文