Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在dataframe中创建重复索引项的列表_Python 3.x_Pandas_Dataframe_Duplicates_Timestamp - Fatal编程技术网

Python 3.x 在dataframe中创建重复索引项的列表

Python 3.x 在dataframe中创建重复索引项的列表,python-3.x,pandas,dataframe,duplicates,timestamp,Python 3.x,Pandas,Dataframe,Duplicates,Timestamp,我正在尝试识别索引中的哪些时间戳有重复项。我想创建一个时间戳字符串列表。如果可能的话,我想为每个有重复项的时间戳返回一个时间戳 #required packages import os import pandas as pd import numpy as np import datetime # create sample time series header = ['A','B','C','D','E'] period = 5 cols = len(header) dates = pd.

我正在尝试识别索引中的哪些时间戳有重复项。我想创建一个时间戳字符串列表。如果可能的话,我想为每个有重复项的时间戳返回一个时间戳

#required packages
import os
import pandas as pd
import numpy as np
import datetime

# create sample time series
header = ['A','B','C','D','E']
period = 5
cols = len(header)

dates = pd.date_range('1/1/2000', periods=period, freq='10min')
dates2 = pd.date_range('1/1/2022', periods=period, freq='10min')
df = pd.DataFrame(np.random.randn(period,cols),index=dates,columns=header)
df0 = pd.DataFrame(np.random.randn(period,cols),index=dates2,columns=header)
df1 = pd.concat([df]*3)                                                         #creates duplicate entries by copying the dataframe
df1 = pd.concat([df1, df0])
df2 = df1.sample(frac=1)                                                        #shuffles the dataframe
df3 = df1.sort_index()                                                          #sorts the dataframe by index

print(df2)
#print(df3)

# Identifying duplicated entries

df4 = df2.duplicated()

print(df4)  
然后,我想使用列表调用每个时间戳的所有重复条目。从上面的代码可以看出,有没有一种好方法可以调用与false bool类型相关的索引

编辑:添加一个额外的数据框以创建一些唯一的值,并将第一个数据框增加三倍以创建多个重复。还为问题添加了更多细节。

IIUC:

df4[~df4]
输出:

2000-01-01 00:10:00    False
2000-01-01 00:00:00    False
2000-01-01 00:40:00    False
2000-01-01 00:30:00    False
2000-01-01 00:20:00    False
dtype: bool
[Timestamp('2000-01-01 00:10:00'),
 Timestamp('2000-01-01 00:00:00'),
 Timestamp('2000-01-01 00:40:00'),
 Timestamp('2000-01-01 00:30:00'),
 Timestamp('2000-01-01 00:20:00')]
时间戳列表

df4[~df4].index.tolist()
输出:

2000-01-01 00:10:00    False
2000-01-01 00:00:00    False
2000-01-01 00:40:00    False
2000-01-01 00:30:00    False
2000-01-01 00:20:00    False
dtype: bool
[Timestamp('2000-01-01 00:10:00'),
 Timestamp('2000-01-01 00:00:00'),
 Timestamp('2000-01-01 00:40:00'),
 Timestamp('2000-01-01 00:30:00'),
 Timestamp('2000-01-01 00:20:00')]

这确实很有效,比其他任何答案都灵活一点。有没有简单的方法将时间戳列表转换为字符串?我尝试使用to_字符串,但列表没有该属性。基本上只需将时间戳列为:['2000-01-01 00:00:00''2000-01-01 00:40:00''2000-01-01 00:20:00''2000-01-01 00:30:00''2000-01-01 00:10:00']