写一个收集银行客户交易历史 账户信息 偏好行为等数据进行客户画像的python代码
时间: 2024-10-10 07:09:48 浏览: 32
银行客户画像
为了创建一个简单的Python脚本,用于收集银行客户的交易历史、账户信息和偏好行为数据,并构建客户画像,我们可以使用pandas库来处理数据。这里是一个基本框架:
```python
import pandas as pd
# 定义一个示例数据结构,实际应用中可能从数据库或API获取
class CustomerData:
def __init__(self):
self.transaction_history = pd.DataFrame(columns=['transaction_date', 'amount', 'category'])
self.account_info = {
'customer_id': '',
'name': '',
'balance': 0,
'account_type': ''
}
self.preferences = {
'product_preferences': [],
'communication_channel': '',
'frequency': '',
}
def collect_customer_data(customer_id):
# 模拟从数据库获取数据
transaction_df = get_transaction_data(customer_id)
account_info = get_account_details(customer_id)
# 更新客户对象
customer = CustomerData()
customer.customer_id = customer_id
customer.transaction_history = transaction_df
customer.account_info.update(account_info)
# 假设偏好数据已存储在外部源,这里仅作说明
preferences = fetch_preferences(customer_id)
customer.preferences.update(preferences)
return customer
def get_transaction_data(customer_id):
# 这里假设有一个函数返回DataFrame
return pd.DataFrame({
'customer_id': [customer_id] * 5, # 示例数据有5条交易记录
'transaction_date': ['2023-01-01', '2023-02-14', '2023-03-28', '2023-05-12', '2023-06-30'],
'amount': [100, 200, 300, 400, 500],
'category': ['deposit', 'withdrawal', 'investment', 'utility', 'salary']
})
def get_account_details(customer_id):
# 这里也假设有一个函数返回字典
return {'customer_id': customer_id, 'name': 'John Doe', 'balance': 2000, 'account_type': 'checking'}
def fetch_preferences(customer_id):
# 这部分需要根据实际情况填充,比如从CSV或其他数据源读取
# 返回的字典应包含偏好信息
return {
'product_preferences': ['online_banking', 'mobile_app'],
'communication_channel': 'email',
'frequency': 'monthly'
}
# 使用示例
customer = collect_customer_data('12345')
print(customer.transaction_history)
print(customer.account_info)
print(customer.preferences)
```
在这个例子中,我们首先定义了一个`CustomerData`类,包含了交易历史、账户信息和偏好信息的数据容器。然后我们编写了几个模拟函数来获取这些数据。最后,通过`collect_customer_data`函数将所有数据整合到一起。
阅读全文