需要解决dateframe指定行数据修改
具体需求:在Excel通过pandas读取后,只对date列为2023-09-12的con_limit_up列数据乘系数0.7和date列为2023-09-11的con_limit_up列数据乘系数0.4,其他时间列con_limit_up列数据赋值为0
amount date stock con_limit_up weight close volume
1 2023-09-10 SZSE.002855 7 0.24137931 21.01 39373185
2 2023-09-10 SZSE.000536 6 0.206896552 3.19 329833157
3 2023-09-10 SZSE.002338 2 0.068965517 42.55 21839136
4 2023-09-10 SZSE.001296 2 0.068965517 27.39 19882309
5 2023-09-10 SHSE.688418 2 0.068965517 23.38 49512234
6 2023-09-10 SHSE.605365 2 0.068965517 18.03 19213361
1 2023-09-11 SZSE.002855 8 0.19047619 23.11 54270864
2 2023-09-11 SHSE.600895 4 0.095238095 23.74 282015669
3 2023-09-11 SHSE.605588 4 0.095238095 61.3 512700
4 2023-09-11 SZSE.002338 3 0.071428571 46.81 51592271
5 2023-09-11 SZSE.002145 1 0.023809524 5.75 83848262
6 2023-09-11 SZSE.002207 1 0.023809524 8.01 44110395
7 2023-09-11 SZSE.002284 1 0.023809524 10.37 70841077
8 2023-09-11 SZSE.002577 1 0.023809524 16.41 27840466
9 2023-09-11 SZSE.002795 1 0.023809524 8.8 36522471
10 2023-09-11 SZSE.002902 1 0.023809524 24.89 38906542
11 2023-09-11 SZSE.002970 1 0.023809524 33.33 10525270
12 2023-09-11 SZSE.002995 1 0.023809524 25.42 8306519
1 2023-09-12 SZSE.000536 6 0.157894737 3.2 565375316
2 2023-09-12 SZSE.000851 3 0.078947368 6.91 106487499
3 2023-09-12 SZSE.001268 3 0.078947368 29.41 19713282
4 2023-09-12 SHSE.605365 2 0.052631579 18.32 14024907
5 2023-09-12 SZSE.000766 2 0.052631579 9.42 71311125
6 2023-09-12 SZSE.001313 2 0.052631579 10.15 38803817
7 2023-09-12 SZSE.002902 2 0.052631579 27.38 30893387
8 2023-09-12 SHSE.600186 1 0.026315789 5.29 161293039
9 2023-09-12 SHSE.600520 1 0.026315789 14.89 10034810
10 2023-09-12 SHSE.600719 1 0.026315789 8.12 41404562
11 2023-09-12 SZSE.002355 1 0.026315789 7.44 132727319
12 2023-09-12 SZSE.002957 1 0.026315789 17.71 20109535
1 2023-09-13 SZSE.000536 7 0.2 3.52 293595726
2 2023-09-13 SZSE.001268 4 0.114285714 32.35 18565980
3 2023-09-13 SZSE.002855 3 0.085714286 24.27 48837726
4 2023-09-13 SHSE.603607 2 0.057142857 19.97 11755208
5 2023-09-13 SHSE.600802 1 0.028571429 5.73 43656592
6 2023-09-13 SHSE.603162 1 0.028571429 18.9 14676241
7 2023-09-13 SHSE.603909 1 0.028571429 14.03 2030741
8 2023-09-13 SHSE.603933 1 0.028571429 18.6 11165879
9 2023-09-13 SZSE.000010 1 0.028571429 3.1 84282602
10 2023-09-13 SZSE.000058 1 0.028571429 7.94 67060210
import pandas as pd
data=pd.DataFrame(columns=['amount' ,'date' ,'stock' ,'con_limit_up' ,'weight' ,'close', 'volume']
,data=[[1,'2023-09-10','SZSE.002855' ,7 ,0.24137931 ,21.01, 39373185],
[2, '2023-09-11' ,'SZSE.002855', 8 ,0.19047619 ,23.11, 54270864],
[3 ,'2023-09-12', 'SZSE.000536' ,6, 0.206896552 ,3.19 ,329833157]])
data.loc[data['date']=='2023-09-12',['con_limit_up']]=data[data['date']=='2023-09-12']['con_limit_up']*0.7
data.loc[data['date']=='2023-09-11',['con_limit_up']]=data[data['date']=='2023-09-11']['con_limit_up']*0.4
data.loc[(data['date']!='2023-09-12') & (data['date']!='2023-09-11'),'con_limit_up']=0
【以下回答由 GPT 生成】
要通过pandas修改DataFrame的特定行数据,可以使用.loc方法来选择和修改数据。具体步骤如下:
下面是具体的代码示例:
import pandas as pd
# 读取Excel文件生成DataFrame对象
df = pd.read_excel('your_file_path.xlsx')
# 修改符合条件的行的特定列数据
df.loc[df['date'] == '2023-09-12', 'con_limit_up'] *= 0.7
df.loc[df['date'] == '2023-09-11', 'con_limit_up'] *= 0.4
# 修改其他不需要修改的行的特定列数据为0
df.loc[~((df['date'] == '2023-09-12') | (df['date'] == '2023-09-11')), 'con_limit_up'] = 0
# 打印修改后的DataFrame
print(df)
这样就可以按照条件对DataFrame的特定行数据进行修改了。请将your_file_path.xlsx
替换为实际的Excel文件路径。