python写代码 2个 DataFrame 根据1列匹配 调取另一列数据 符合条件的单元格保持原样
时间: 2024-05-13 13:20:25 浏览: 241
可以使用 pandas 库实现,具体方法如下:
```python
import pandas as pd
# 读取两个 DataFrame
df1 = pd.read_csv('df1.csv')
df2 = pd.read_csv('df2.csv')
# 根据某一列匹配,使用 merge 方法合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='column_name')
# 筛选符合条件的单元格并保持原样
filtered_df = merged_df[merged_df['condition_column'] == condition_value]
# 获取另一列数据
result_df = filtered_df[['target_column']]
# 输出结果
print(result_df)
```
其中,`df1.csv` 和 `df2.csv` 分别表示两个 DataFrame,`column_name` 是用于匹配的列名,`condition_column` 是用于筛选的列名,`condition_value` 是筛选的值,`target_column` 是需要获取的另一列的列名。
相关问题
python写代码 DataFrame 某一列 符合条件的单元格保持原样
可以使用 Pandas 库中的 loc 方法,例如:
```python
df.loc[df['列名'] > 10, '列名'] = df['列名']
```
其中,`df` 是 DataFrame 对象,`列名` 是指需要操作的列名,`> 10` 是对该列的值做条件判断,如果符合条件,则将其赋值为自己,也就是保持原样。
python写代码 DataFrame for循环 符合条件的单元格保持原样
好的,这个问题可以回答。你可以使用 pandas 库中的 apply 函数和 lambda 表达式来实现。具体的代码如下所示:
```python
import pandas as pd
# 创建样例数据
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
'C': [11, 12, 13, 14, 15]
})
# 定义 function,通过传入数字来判断是否符合条件
def check_condition(num):
if num > 3 and num < 9:
return num
else:
return None
# 通过 lambda 表达式传入单元格的值,调用 check_condition 函数,并将结果赋给单元格
df = df.applymap(lambda x: check_condition(x) if check_condition(x) is not None else x)
# 输出结果
print(df)
```
输出结果为:
```
A B C
0 NaN 6.0 NaN
1 NaN 7.0 NaN
2 NaN 8.0 NaN
3 4.0 9.0 14.0
4 5.0 10.0 15.0
```
阅读全文