我有一个数据框,看起来像这样: df1
Date and time Price1 PrePrice
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1200.6 1203.8
17.9.2018 9:47 1200.6 1202.1
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1202.1 1204.8
17.9.2018 23:30 1200.7 1204.8
17.9.2018 23:31 1200.7 1204.8
17.9.2018 23:32 1200.6 1204.8
17.9.2018 23:33 1200.6 1204.8
17.9.2018 23:36 1200.7 1204.8
17.9.2018 23:47 1200.7 1204.8
17.9.2018 23:48 1200.6 1202.1
17.9.2018 23:50 1202.1 1200.9
17.9.2018 23:52 1203.8 1200.8
17.9.2018 23:55 1204.8 1200.7
我想获得两列Price1,PrePrice之间的公共值
像这样:(1204.8; 17.9.2018 9:47; 17.9.2018 23:55)
它尝试了这种方法,但是非常慢:
c = [(i, j) for i, x in enumerate(a) for j, y in enumerate(b) if x == y]
答案 0 :(得分:2)
如果要在同一行上放置相等的地方,那就是香草熊猫:
table = pd.read_csv(files,
header=None,
delimiter="\t",
usecols=range(3),
names=['wave', 'shape', 'freq'])
(您的示例中没有。)
如果要使用所有共享值,可以使用设置符号:
df1[df1.Price1 == df1.PrePrice]
鉴于这些时间,您可以使用c = set(df1.Price1).intersection(df1.PrePrice)
print(c)
> {1200.7, 1202.1, 1203.8, 1204.8}
过滤Date and Time
:
Price1
答案 1 :(得分:0)
df = pd.read_csv(“ C:/Users/Adil/Desktop/test.csv”,delimiter =';',decimal =',',parse_dates = [“ Date and time”],index_col =“ Date和时间”) 上面的代码终于可以正常工作了。 但仍远未达到预期的结果:(1204.8; 17.9.2018 9:47; 17.9.2018 23:55)