该回复引自免费微信小程序-皆我百晓生:
你可以使用pandas库来处理DataFrame数据。可以按照以下步骤来实现你的需求:
导入pandas库:
import pandas as pd
创建DataFrame数据:
data1 = {'symbol': ['SHSE.603083', 'SHSE.603123', 'SHSE.603496', 'SZSE.002848', 'SZSE.002892'],
'limit_up': [52.91, 12.36, 23.62, 12.8, 16.04],
'continue': [0, 0, 0, 0, 0]}
df1 = pd.DataFrame(data1)
data2 = {'symbol': ['SHSE.603083', 'SHSE.603123', 'SHSE.603496', 'SZSE.002848', 'SZSE.002892'],
'close': [1, 2, 3, 4, 5],
'upper_limit': [2, 3, 3, 4, 6]}
df2 = pd.DataFrame(data2)
使用merge函数将两个DataFrame合并:
merged_df = pd.merge(df1, df2, on='symbol')
使用条件判断将符合条件的行的continue列赋值为1:
merged_df.loc[merged_df['close'] == merged_df['upper_limit'], 'continue'] = 1
打印结果:
print(merged_df)
完整代码如下:
import pandas as pd
data1 = {'symbol': ['SHSE.603083', 'SHSE.603123', 'SHSE.603496', 'SZSE.002848', 'SZSE.002892'],
'limit_up': [52.91, 12.36, 23.62, 12.8, 16.04],
'continue': [0, 0, 0, 0, 0]}
df1 = pd.DataFrame(data1)
data2 = {'symbol': ['SHSE.603083', 'SHSE.603123', 'SHSE.603496', 'SZSE.002848', 'SZSE.002892'],
'close': [1, 2, 3, 4, 5],
'upper_limit': [2, 3, 3, 4, 6]}
df2 = pd.DataFrame(data2)
merged_df = pd.merge(df1, df2, on='symbol')
merged_df.loc[merged_df['close'] == merged_df['upper_limit'], 'continue'] = 1
print(merged_df)
运行代码后,你将得到如下结果:
symbol limit_up continue close upper_limit
0 SHSE.603083 52.91 1 1 2
1 SHSE.603123 12.36 0 2 3
2 SHSE.603496 23.62 0 3 3
3 SZSE.002848 12.80 0 4 4
4 SZSE.002892 16.04 0 5 6
可以看到,符合条件的行的continue列已经被赋值为1。