我有一个名为pairList的csv,它看起来像:
0 BBG.XNGS.AAPL.S BBG.XNGS.BRCM.S 0
1 BBG.XNGS.AAPL.S BBG.XNGS.MSFT.S 0
2 BBG.XNGS.AAPL.S BBG.XNGS.AMAT.S 0
3 BBG.XNGS.AAPL.S BBG.XNGS.QCOM.S 0
4 BBG.XNGS.AMGN.S BBG.XNYS.MWW.S 0
5 BBG.XNGS.BRCM.S BBG.XNGS.MSFT.S 0
6 BBG.XNGS.BRCM.S BBG.XNGS.AMAT.S 0
7 BBG.XNGS.BRCM.S BBG.XNGS.QCOM.S 0
8 BBG.XNGS.MSFT.S BBG.XNGS.AMAT.S 0
9 BBG.XNGS.MSFT.S BBG.XNGS.QCOM.S 0
10 BBG.XNGS.AMAT.S BBG.XNGS.QCOM.S 0
11 BBG.XNGS.CMCSA.S BBG.XNGS.CSCO.S 0
12 BBG.XNGS.CMCSA.S BBG.XNGS.SYMC.S 0
13 BBG.XNGS.CSCO.S BBG.XNGS.SYMC.S 0
我试图打开csv,向下看每一行,直到我找到第一行,其中4列等于0(在这种情况下,它是第一行,但它会改变)。将此行的数据复制到3个变量
stock1ID
stock2ID
status
然后更新状态(列4中seelcted行的值),然后将数据帧保存回csv。因此,csv(在本例中)最终看起来像:
0 BBG.XNGS.AAPL.S BBG.XNGS.BRCM.S 1
1 BBG.XNGS.AAPL.S BBG.XNGS.MSFT.S 0
2 BBG.XNGS.AAPL.S BBG.XNGS.AMAT.S 0
3 BBG.XNGS.AAPL.S BBG.XNGS.QCOM.S 0
4 BBG.XNGS.AMGN.S BBG.XNYS.MWW.S 0
5 BBG.XNGS.BRCM.S BBG.XNGS.MSFT.S 0
6 BBG.XNGS.BRCM.S BBG.XNGS.AMAT.S 0
7 BBG.XNGS.BRCM.S BBG.XNGS.QCOM.S 0
8 BBG.XNGS.MSFT.S BBG.XNGS.AMAT.S 0
9 BBG.XNGS.MSFT.S BBG.XNGS.QCOM.S 0
10 BBG.XNGS.AMAT.S BBG.XNGS.QCOM.S 0
11 BBG.XNGS.CMCSA.S BBG.XNGS.CSCO.S 0
12 BBG.XNGS.CMCSA.S BBG.XNGS.SYMC.S 0
13 BBG.XNGS.CSCO.S BBG.XNGS.SYMC.S 0
我可以打开csv并选择数据作为3个变量。我无法保存更新的csv。我最终得到一个csv,看起来像:
0 BBG.XNGS.AAPL.S BBG.XNGS.BRCM.S 0 1
1 BBG.XNGS.AAPL.S BBG.XNGS.MSFT.S 0 1
2 BBG.XNGS.AAPL.S BBG.XNGS.AMAT.S 0 1
3 BBG.XNGS.AAPL.S BBG.XNGS.QCOM.S 0 1
4 BBG.XNGS.AMGN.S BBG.XNYS.MWW.S 0 1
5 BBG.XNGS.BRCM.S BBG.XNGS.MSFT.S 0 1
6 BBG.XNGS.BRCM.S BBG.XNGS.AMAT.S 0 1
7 BBG.XNGS.BRCM.S BBG.XNGS.QCOM.S 0 1
8 BBG.XNGS.MSFT.S BBG.XNGS.AMAT.S 0 1
9 BBG.XNGS.MSFT.S BBG.XNGS.QCOM.S 0 1
10 BBG.XNGS.AMAT.S BBG.XNGS.QCOM.S 0 1
11 BBG.XNGS.CMCSA.S BBG.XNGS.CSCO.S 0 1
12 BBG.XNGS.CMCSA.S BBG.XNGS.SYMC.S 0 1
13 BBG.XNGS.CSCO.S BBG.XNGS.SYMC.S 0 1
csv有一个额外的第4列1,而我只想选择的行应该在第3列中有一个1。你知道吗
请看下面我写的代码:
def getPairID(TimeseriesDataPath):
#status = 0 - pair not processed
#status = 1 - pair being processed
#status = 2 - pair finined being processed
pattern = 'PairsToTestList'+'.csv'
pairToTest = 0
with open(TimeseriesDataPath+pattern,'rt') as f:
pairList = pd.read_csv(f,engine='c',header=None,index_col=0, parse_dates=True, infer_datetime_format=True)
for i, row in pairList.iterrows():
if i != 'unique_id':
stock1ID = row[1]
stock2ID = row[2]
status = row[3]
if status == 0 :
print('stock1ID ',stock1ID,'stock2ID ',stock2ID,'status ',status)
pairToTest = 1
pairList[row[2]] = 1
path = os.path.join(TimeseriesDataPath,pattern)
pairList.to_csv(path,header=False)
break
return stock1ID,stock2ID,pairToTest
更新,包括迭代我认为你正在寻找。你知道吗
我还使用
.iloc
来更新它,以查找下一行的整数位置,而不是使用索引。你知道吗相关问题 更多 >
编程相关推荐