首页 > 解决方案 > 重新分配 Pandas DataFrame 列值

问题描述

我有一个日期时间格式不正确的 csv。我已经弄清楚如何将这些值转换为我需要的格式,但现在我需要将列中的所有值重新分配给新的转换值。

例如,我希望我可以在下面的 FOR 循环中放入一些东西,将值插入到正确位置的数据框中:

for i in df[df.columns[1]]:
    t = pd.Timestamp(i)
    short_date = t.date().strftime('%m/%d/%Y').lstrip('0')   
    # Insert back into dataframe?

一如既往,非常感谢您的帮助!

有问题的列的一部分:有问题的数据框的一部分:

Created Date    
2019-02-27 22:55:16    
2019-01-29 22:57:12    
2018-11-29 00:13:31    
2019-01-30 21:35:15
2018-12-20 21:14:45    
2018-11-01 16:20:15    
2019-04-11 16:38:07    
2019-01-24 00:23:17    
2018-12-21 19:30:10    
2018-12-19 22:33:04    
2018-11-07 19:54:19    
2019-05-10 21:15:00

标签: pythonpandas

解决方案


用最简单但最有启发性的可能术语:

df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
df
#    x  y
# 0  1  4
# 1  2  5
# 2  3  6

df[:] = df[:].astype(float)
df
#      x    y
# 0  1.0  4.0
# 1  2.0  5.0
# 2  3.0  6.0

让我们pandas为您完成工作。

或者,仅针对一列:

df.x = df.x.astype(float)
df
#      x  y
# 0  1.0  4
# 1  2.0  5
# 2  3.0  6

当然,您将替换astype(float).date().strftime('%m/%d/%Y').lstrip('0').


推荐阅读