DrPepper8888 / IPMN

0 stars 0 forks source link

货币对相关性分析.py #2

Open DrPepper8888 opened 4 months ago

DrPepper8888 commented 4 months ago

`import pandas as pd

假设df是原始DataFrame,并且它包含了'DR_ACCT_CURR_CD'和'CR_ACCT_CURR_CD'列

创建货币对列,格式为 '基础货币/报价货币'

df['CURRENCY_PAIR'] = df['DR_ACCT_CURR_CD'] + '/' + df['CR_ACCT_CURR_CD']

可以使用'CURRENCY_PAIR'列来进行后续的分析

例如,计算每个货币对的交易量

df_grouped = df.groupby('CURRENCY_PAIR')['TRAN_AMT'].sum().reset_index()

可视化交易量

plt.figure(figsize=(10, 6)) sns.barplot(x='CURRENCY_PAIR', y='TRAN_AMT', data=df_grouped) plt.title('Transaction Volume by Currency Pair') plt.xlabel('Currency Pair') plt.ylabel('Transaction Volume') plt.xticks(rotation=45) plt.show()

相关性分析

假设我们已经有了一个DataFrame 'df',其中包含了货币对的交易数据

我们首先需要计算货币对之间的相关系数矩阵

currency_pairs = df['CURRENCY_PAIR'].unique() # 获取所有唯一的货币对 correlation_matrix = np.zeros((len(currency_pairs), len(currency_pairs)))

for i, pair1 in enumerate(currency_pairs): for j, pair2 in enumerate(currency_pairs): if pair1 == pair2: # 相关系数矩阵的对角线为1 correlation_matrix[i, j] = 1 else:

这里我们简单地使用交易量来计算相关性,实际情况可能需要更复杂的方法

        # 例如,使用价格变动或收益率
        df_pair1 = df[df['CURRENCY_PAIR'] == pair1]
        df_pair2 = df[df['CURRENCY_PAIR'] == pair2]
        correlation_matrix[i, j] = np.corrcoef(df_pair1['TRAN_AMT'], df_pair2['TRAN_AMT'])[0, 1]

可视化相关性矩阵

plt.figure(figsize=(12, 12)) sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', square=True, cbar_kws={"shrink": .5}) plt.title('Correlation Matrix of Currency Pairs') plt.show()`