ths_index = pd.read_sql_table(table_name='ths_index' , con=con2) ths_index_list = ths_index['ts_code'].tolist() for ts_code in ths_index_list: #行业分类到个股行业表格 industry = pd.read_sql_table(table_name= ts_code, con=con2) industry_member_list = industry['code'].tolist() for code in industry_member_list:#各个行业到行业内部所有股票 try:#解决member未更新退市股数据,在moneyflow查找无表格报错----------------------OK stock_daily = pd.read_sql('SELECT ts_code, trade_date, net_mf_amount FROM `{}`'.format(code), con=con6) # print(stock_daily) #############需要解决 不同股票交易时间数不一致,筛选的时间早但表格无这个时间怎么解决 以及 交易时间存在,但停牌无数据null处理问题 # df_sum = stock_daily.groupby('trade_date')['net_mf_amount'].sum().reset_index() except : pass print(ts_code)#这个位置每一个行业的成分股跑完后,报下一个行业成分股。 # df_sum.to_sql(name=ts_code, con=con5, if_exists='replace', index=False)
时间: 2024-04-07 18:30:21 浏览: 89
这段代码的作用是从数据库中读取一个名为"ths_index"的表,并将表中的"ts_code"列转换为列表"ths_index_list"。然后,对于列表中的每个"ts_code",从数据库中读取一个名为"ts_code"的表,并将表中的"code"列转换为列表"industry_member_list"。
接下来,对于每个"code",尝试从数据库中读取一个名为"code"的表,并从该表中选择"ts_code"、"trade_date"和"net_mf_amount"列。然后,对数据进行一些处理(需要解决的问题在注释中有提到),最后打印出当前的"ts_code"。
请注意,这里的代码只给出了部分内容,并没有完整的逻辑。如果你有具体的问题或需要更多的帮助,请告诉我。
相关问题
for ts_code in ths_index_list: #行业分类到个股行业表格 industry = pd.read_sql_table(table_name= ts_code, con=con2) industry_member_list = industry['code'].tolist() for code in industry_member_list:#各个行业到行业内部所有股票 try:#解决member未更新退市股数据,在moneyflow查找无表格报错----------------------OK stock_daily = pd.read_sql('SELECT ts_code, trade_date, net_mf_amount FROM `{}`'.format(code), con=con6) #############需要解决 不同股票交易时间数不一致,筛选的时间早但表格无这个时间怎么解决 以及 交易时间存在,但停牌无数据null处理问题 # df_sum = stock_daily.groupby('trade_date')['net_mf_amount'].sum().reset_index() except : pass 最内层的for循环,对每个股票的net列 按照 trade_date列的时间顺序 累加 输出结果为 trade_date列 和 总和,总和指的是相同时间不同股票net值相加
根据你的描述,你想在最内层的循环中,对每个股票的"net_mf_amount"列按照"trade_date"列的时间顺序进行累加,并输出结果包含"trade_date"列和对应时间点的总和。以下是一个示例代码来实现这个逻辑:
```python
import pandas as pd
result = pd.DataFrame() # 创建一个空的DataFrame用于保存结果
for ts_code in ths_index_list:
industry = pd.read_sql_table(table_name=ts_code, con=con2)
industry_member_list = industry['code'].tolist()
for code in industry_member_list:
try:
stock_daily = pd.read_sql('SELECT ts_code, trade_date, net_mf_amount FROM `{}`'.format(code), con=con6)
# 按照时间顺序对net_mf_amount进行累加
df_sum = stock_daily.groupby('trade_date')['net_mf_amount'].sum().reset_index()
# 合并结果到总的DataFrame中
result = pd.concat([result, df_sum], ignore_index=True)
except:
pass
# 打印结果
print(result)
```
这段代码将在最内层的循环中,使用`groupby`方法按照"trade_date"列对"net_mf_amount"进行分组,并计算每个日期对应的总和。然后,将每个股票的结果合并到总的DataFrame中。最后,打印出结果。
请注意,这只是一个示例代码,具体实现可能需要根据你的数据结构和需求进行调整。如果你有具体的问题或需要更多的帮助,请告诉我。
import pywinautoimport time# 启动同花顺软件app = pywinauto.Application(backend="uia").start("ths.exe")time.sleep(5) # 等待软件启动# 获取主窗口句柄main_window = app.top_window()# 获取侧边栏控件句柄sidebar = main_window.child_window(title="侧边栏", control_type="Pane")# 遍历侧边栏菜单,输出控制IDmenu_items = sidebar.children(control_type="ListItem")for item in menu_items: print(item.window_control_id()) 将以上程序的同花顺起动路径换为 C:\同花顺远航版\transaction\xiadan.exe
import pywinauto
import time
# 启动同花顺软件
app = pywinauto.Application(backend="uia").start(r"C:\同花顺远航版\transaction\xiadan.exe")
time.sleep(5) # 等待软件启动
# 获取主窗口句柄
main_window = app.top_window()
# 获取侧边栏控件句柄
sidebar = main_window.child_window(title="侧边栏", control_type="Pane")
# 遍历侧边栏菜单,输出控制ID
menu_items = sidebar.children(control_type="ListItem")
for item in menu_items:
print(item.window_control_id())
阅读全文