dataframe 按照另一个dataframe的某列筛选
时间: 2023-11-18 20:06:55 浏览: 217
可以使用pandas的merge函数,将两个dataframe按照某一列合并,然后再根据该列的条件筛选出需要的数据。示例代码如下:
```python
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [2, 3], 'C': [4, 5]})
merged_df = pd.merge(df1, df2, on='A', how='inner')
filtered_df = merged_df[merged_df['C'] > 4]
print(filtered_df)
```
这段代码将df1和df2按照'A'列合并,然后筛选出'C'列大于4的数据。
相关问题
dataframe loc某一列条件筛选
DataFrame loc 可以用来通过索引或条件筛选某一列的数据。
例如,假设有一个名为df的DataFrame,其中有两列:'姓名'和'年龄'。我们想筛选出年龄大于等于18岁的数据,可以使用以下代码:
```python
filtered_data = df.loc[df['年龄'] >= 18, '姓名']
```
上述代码中,df['年龄'] >= 18 是筛选条件,它会返回一个布尔Series,代表每行数据是否满足条件。然后,我们通过df.loc[] 通过这个条件筛选出满足条件的行,并且只选择'姓名'列。
筛选完的结果会返回一个Series对象,可以将结果保存在filtered_data中进行后续处理。
如何以DataFrame某列作为条件筛选另一列的值
可以使用pandas的DataFrame的loc方法进行条件筛选。例如,若要筛选DataFrame df中列A值为1的行的列B值,则可以使用如下代码:
```python
df.loc[df['A'] == 1, 'B']
```
其中,`df['A'] == 1`是筛选条件,返回一个布尔类型的Series,表示df中哪些行的A列值为1。`'B'`表示要筛选的列名。loc方法返回的是Series对象,表示符合条件的行的B列值。