pandaps:如何获得一行包含日期的列名?

2024-04-26 21:01:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为DateUnique的数据帧,它由我的另一个名为A的数据帧中的所有唯一日期(日期时间或字符串格式)组成。在

>>> print(A)
          'dateLivraisonDemande'  'abscisse' 'BaseASDébut' 'BaseATDébut'  0                 2015-05-27  2004-01-10      05:00:00      05:00:00   
    1                 2015-05-27  2004-02-10      18:30:00      22:30:00   
    2                 2015-05-27  2004-01-20      23:40:00      19:30:00   
    3                 2015-05-27  2004-03-10      12:05:00      06:00:00   
    4                 2015-05-27  2004-01-10      23:15:00      13:10:00   
    5                 2015-05-27  2004-02-10      18:00:00      13:45:00   
    6                 2015-05-27  2004-01-20      02:05:00      19:15:00   
    7                 2015-05-27  2004-03-20      08:00:00      07:45:00   
    8                 2015-05-29  2004-01-01      18:45:00      21:00:00   
    9                 2015-05-27  2004-02-15      04:20:00      07:30:00   
    10                2015-04-10  2004-01-20      13:50:00      15:30:00  

以及:

^{pr2}$
  • 如何获取包含每个日期的列的名称?在
  • 也许有类似的东西:

    # input: 
    If row == '2015-04-10':
                print(df.name_Of_Column([0])) 
    
    # output: 
    'dateLivraisonDemande'
    

Tags: 数据字符串名称inputif格式时间but
1条回答
网友
1楼 · 发布于 2024-04-26 21:01:58

您可以创建一个返回相应列的函数。使用矢量化的isin函数,然后检查any值是否为True。在

df = pd.DataFrame({'dateLivraisonDemande': ['2015-05-27']*7 + ['2015-05-27', '2015-05-29', '2015-04-10'], 
                   'abscisse': ['2004-02-10', '2004-01-20', '2004-03-10', '2004-01-10', 
                                '2004-02-10', '2004-01-20', '2004-03-10', '2004-01-10', 
                                '2004-02-15', '2004-01-20']})

DateUnique = pd.Series(['1899-12-30', '1900-01-01', '2004-03-10', '2004-03-20',  
                        '2004-01-20', '2015-05-29', '2015-04-10', '2015-05-27', 
                        '2004-02-15', '2004-02-10'])

def return_date_columns(date_input):
    if df["dateLivraisonDemande"].isin([date_input]).any():
        return "dateLivraisonDemande"
    if df["abscisse"].isin([date_input]).any():
        return "abscisse"

>>> DateUnique.apply(return_date_columns)
0                    None
1                    None
2                abscisse
3                    None
4                abscisse
5    dateLivraisonDemande
6    dateLivraisonDemande
7    dateLivraisonDemande
8                abscisse
9                abscisse
dtype: object

相关问题 更多 >