文件1:
2018-06-07, AAA, 26543.0, 123, 0.0
2018-06-07, AAA, 26512.0, 123, 1.0
file2的:
20180608, B, 12345, 343, 0
20180607, AAA, 26512, 123, 1
20180608, C, 123, 343, 0
20180607, AAA, 26543, 123, 0
现在,我可以找到一种方法,对于file1中的每一行,我只是处理它并尝试在file2中找到匹配的行。但是,这个解决方案可能会遇到一些问题,因为我们处理的是相对较大的数据,这种方法(算法)可能会非常慢。
答案 0 :(得分:0)
根据您import UIKit
import CoreBluetooth
class ViewController: UIViewController,CBCentralManagerDelegate {
var centralManager:CBCentralManager!
override func viewDidLoad() {
super.viewDidLoad()
self.centralManager = CBCentralManager(delegate: self, queue: .main)
}
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("Powerd On State ")
let options: [String: Any] = [CBCentralManagerScanOptionAllowDuplicatesKey:
NSNumber(value: false)]
self.centralManager.scanForPeripherals(withServices: nil, options: options)
case .poweredOff:
print("Power on the Bluetooth")
default:
print("Something went wrong!")
break
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
print("Peripheral Discovered: ",peripheral.name ?? "Nil")
}
}
的大小以及您想要的大小,您可以选择一些选项。
首先,使用DataFrame
将日期设置为相同的格式。还要确保每个pd.to_datetime
df
import pandas as pd
df1['date'] = pd.to_datetime(df1['date'])
df2['date'] = pd.to_datetime(df2['date'], format='%Y%m%d')
print(df1)
date val1 val2 val3 val4
0 2018-06-07 AAA 26543.0 123 0.0
1 2018-06-07 AAA 26512.0 123 1.0
print(df2)
date val1 val2 val3 val4
0 2018-06-08 B 12345 343 0
1 2018-06-07 AAA 26512 123 1
2 2018-06-08 C 123 343 0
3 2018-06-07 AAA 26543 123 0
您可以使用pd.merge
参数执行outer
合并,然后告诉您哪些行与哪个indicator
对应。
DataFrame
输出:
pd.merge(df1, df2, how='outer', indicator=True)
前两行显示在 date val1 val2 val3 val4 _merge
0 2018-06-07 AAA 26543.0 123 0.0 both
1 2018-06-07 AAA 26512.0 123 1.0 both
2 2018-06-08 B 12345.0 343 0.0 right_only
3 2018-06-08 C 123.0 343 0.0 right_only
和df1
中,而后两行仅显示在df2
中。如果您只关心共享行,那么只需使用df2
合并。
inner
pd.merge(df1, df2, how='inner')
date val1 val2 val3 val4
0 2018-06-07 AAA 26543 123 0
1 2018-06-07 AAA 26512 123 1
如果duplicated
和df1
不包含任何重复的行,那么您也可以只连接两个,然后在连接的df2
中查找重复的行,以查看两者之间共享的行帧。
df
输出:
df = pd.concat([df1, df2])
df[df.duplicated()]