pandas 当列名未知时,将int的panda列转换为timestamp数据类型

6za6bjd0  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(106)

你好,我的用例是我有动态名称的日期时间字段和日期将是一些东西,如unix时间戳。所以每次可以有不同的列名,可以有多个日期字段。那么我怎么能做到这一点?现在,如果我做硬编码的列名,这对我的作品

df['date'] = pandas.to_datetime(df['date'], unit='s')

但我不确定如何为动态名称和多个带有Pandas的字段创建此选项

ki0zmccv

ki0zmccv1#

正如我在评论中建议的那样,您可以尝试将所有列转换为DatetimeIndex,然后只保留一个转换成功的列。

# Inspired from @mozway, https://stackoverflow.com/a/75106101/15239951
def find_datetime_col(df):
    mask = df.astype(str).apply(pd.to_datetime, errors='coerce').notna()
    return mask.mean().idxmax()

col = find_datetime_col(df)
print(col)

# Output
Heading 1

输入 Dataframe :

>>> df
   Heading 1  Heading 2  Heading 3  Heading 4
0 2023-01-01         34         12         34
1 2023-01-02         42         99         42
2 2023-01-03         42         99         42
3 2023-01-04         42         99         42

相关问题