我需要获取具有特定列值的行作为键 以下是我的熊猫df。使用特定的列值作为key在熊猫数据框中搜索
>>> data
OrderID TimeStamp ErrorCode Duration ResponseType \
0 3000000 1488948188555841641 NaN IOC NaN
1 3000000 1488948188556444675 0 NaN NEW_ORDER_CONFIRM
2 3000000 1488948188556448153 2 NaN TRADE_CONFIRM
3 3000001 1488948658787676012 NaN IOC NaN
4 3000001 1488948658787811582 1 NaN NEW_ORDER_CONFIRM
5 3000001 1488948658787824862 2 NaN TRADE_CONFIRM
6 3000002 1488949064945887091 NaN IOC NaN
7 3000003 1488949109654115659 NaN IOC NaN
8 3000003 1488949109654294973 1 NaN NEW_ORDER_CONFIRM
9 3000003 1488949109654299930 16388 NaN CANCEL_ORDER_CONFIRM
,我需要选择所有的orderID其中所述持续时间是IOC(很容易) 用作答案orders = data.loc[data.Duration == 'IOC', 'OrderID'].unique()
给药,然后获得这些行选择的OrderID其中所述持续时间为NaN。 OrderID将始终为3或者只是一个ORDERID(对于其中没有输出或空行可以返回,例如OrderID 3000002)
棘手的部分是NEW_ORDER_CONFIRM中的Errorcode是正确的,而TRADE_CONFIRM中的Errorcode或CANCEL_ORDER_CONFIRM是错误的。我只想在最终的行输出中使用这些正确的值。
EXPECTED O/P ROW 1
OrderID TimeStamp ErrorCode Duration ResponseType \
0 3000000 1488948188555841641 0 IOC TRADE_CONFIRM
我尝试使用bash通过使用grep IOC loglife| cut -d, -f1 to get OrderID then grep each OrderID & NaN
。但我需要这将是更有效
谢谢你还可以告诉我如何将数据读入数据框而不是写入csv(http://stackoverflow.com/questions/42669216/create-csv-headers-from-log-file-python/42670850?noredirect = 1#comment72473336_42670850 question) – pythonRcpp
我尝试测试接受soluti在你的文件'ideone_cny805.java'上,是否有正确的输出?没有写入csv的解决方案是创建列表,并在循环中追加数据不是文件,而是列出。然后从输出列表创建数据帧。 – jezrael
我更新了一下我的问题 – pythonRcpp