python - 使用英国日期格式加入 Pandas 数据框

标签 python pandas dataframe

我正在努力从包含英国日期格式 dd/mm/yyyy 的 csv 文件中加入 Pandas 数据帧。

csv 文件中包含的数据是:

UK Date     Price
30/12/2015  120
31/12/2015  123
...         ... 
11/01/2016  135
12/01/2016  144

我的问题是对应于 11/01/2016 的数据在 DataFrame 上附加到 2016 年 11 月 1 日,相反,01/11/2016 行中的数据附加到 2016 年 1 月 11 日。

这是我用来在日期范围内创建 DataFrame 并从临时 DataFrame 连接数据的简单代码:

# Define the dates
dates = pd.date_range('2015-12-01', '2018-06-07')

# Create an empty DataFrame
df1 = pd.DataFrame(index = dates)

# Read the data into a temp dataframe
dftemp = pd.read_csv("a.csv", index_col='UK Date', parse_dates = True,
                        usecols = ['UK Date', 'Price'])

# Join the two DataFrames
df1 = df1.join(dftemp, how='inner')

print df1

我不确定最好是尝试将空白数据框日期转换为英国格式,还是在读取文件时更改格式?另外,更改格式的最佳方法是什么?

谢谢

最佳答案

我相信最好的方法是在 read_csv 中转换为 datetimes通过参数 dayfirst:

df = pd.read_csv("a.csv",
                 index_col='UK Date', 
                 parse_dates = True, 
                 dayfirst=True,
                 usecols = ['UK Date', 'Price'])

另一个解决方案 to_datetime :

df['UK Date'] = pd.to_datetime(df['UK Date'], dayfirst=True)
#if need DatetimeIndex 
#df.index = pd.to_datetime(df.index, dayfirst=True)

或者:

df['UK Date'] = pd.to_datetime(df['UK Date'], format='%d/%m/%Y')
#if need DatetimeIndex 
#df.index = pd.to_datetime(df.index, format='%d/%m/%Y')

关于python - 使用英国日期格式加入 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50756563/

相关文章:

python - streamlit 中生成的多个相同的按键按钮

python - 尝试在 YoutubeAnalytics Api 中使用 Pandas 解析 JSON 并将其转换为 CSV

python - Pandas dataframe.set_index() 删除之前的索引和列

r - 更改数据框列表中的特定列 - R

python - 在 Django 模板中捕获异常

python sklearn获取模型的可用超参数列表

python - 如何在 Python egg 中分发/访问数据文件?

python - 根据多个条件计算列

python - 我如何一次对两个不同的列求和,其中一个列包含 pandas 中的 Decimal 对象?

python - 百万行上的模糊正则表达式匹配 Pandas df