pandas 用institution表中的ts_code和private_investor表中的ts_code求交集,并且合并表
时间: 2024-05-05 20:22:19 浏览: 74
假设institution表中包含列为'ts_code'和'inst_name',private_investor表中包含列为'ts_code'和'investor_name',可以使用pandas中的merge函数实现交集和合并表。
代码示例:
```python
import pandas as pd
# 读取institution表和private_investor表
institution = pd.read_csv('institution.csv')
private_investor = pd.read_csv('private_investor.csv')
# 使用merge函数合并表,并且求交集
result = pd.merge(institution, private_investor, on='ts_code', how='inner')
# 输出合并后的结果
print(result)
```
其中,参数on指定合并的列为'ts_code',参数how指定合并方式为'inner',即求交集。最后输出合并后的结果。
相关问题
pandas中 把merged_df1的ts_code列去掉 然后和df表格合并,两张表格列相同
在Pandas中,如果你想从`merged_df1`中删除`ts_code`列,然后将其余列与`df`表格按照相同的列合并,可以按照以下步骤操作:
1. 首先,创建一个新的DataFrame,去除`merged_df1`中的`ts_code`列:
```python
merged_df1_no_tscode = merged_df1.drop(columns=['ts_code'])
```
这行代码会返回一个新的DataFrame,其中不包含`ts_code`这一列。
2. 接下来,你可以使用`merge()`函数根据共同的列进行合并。如果`df`和`merged_df1_no_tscode`都有相同的列名(除了`ts_code`之外),那么默认的内连接(`how='inner'`)将会找到匹配的行并合并它们:
```python
merged_df_final = pd.merge(df, merged_df1_no_tscode, on=df.columns.difference(['ts_code']), how='inner')
```
这里`df.columns.difference(['ts_code'])`找出`df`中除了`ts_code`以外的所有列名。
3. 这样,`merged_df_final`就包含了`df`的所有列,同时去掉了`merged_df1`中的`ts_code`列。
请注意检查列名是否一致,如果有其他的列名差异,可能需要调整`on`参数。
ts_code = ((df[df['ts_code'].str.contains('[HZ]')]).loc[:,'ts_code'])
这段代码是使用 Pandas 库对 DataFrame 进行操作,主要实现的功能是筛选出包含 H 或者 Z 的股票代码。具体来说,它的实现过程如下:
1. `df['ts_code'].str` 表示对 DataFrame 中的 `ts_code` 列进行字符串操作。
2. `contains('[HZ]')` 表示筛选出包含 H 或者 Z 的股票代码,其中 `[HZ]` 表示只要包含 H 或者包含 Z 就会被筛选出来。
3. `(df[df['ts_code'].str.contains('[HZ]')])` 表示经过筛选后得到的 DataFrame。
4. `loc[:,'ts_code']` 表示只选择 DataFrame 中的 `ts_code` 列。
因此,最终得到的是一个 Series,其中包含符合条件的股票代码。
阅读全文