将列名称分配给Pandas Series

问题描述

我在下面列出的是我在创建熊猫系列并将其转换为数据框并使用系列名称作为列名的尝试中失败的尝试:

import pandas as pd
import datetime as dt
from pandas import DataFrame

start = dt.datetime(2019,1,1).replace(microsecond=0)
stop = dt.datetime(2019,12,31).replace(microsecond=0)


all_dates = pd.date_range(start=start,end=stop)

df = pd.Series(all_dates,name = 'dates')
df = pd.DataFrame(all_dates)

print(df)

我得到的是列名“ 0”而不是“日期”

我要去哪里错了?

解决方法

是的,我现在已经发现了明显的问题。

对我感到羞耻!

import pandas as pd
import datetime as dt
from pandas import DataFrame

start = dt.datetime(2019,1,1).replace(microsecond=0)
stop = dt.datetime(2019,12,31).replace(microsecond=0)


all_dates = pd.date_range(start=start,end=stop)

all_dates = pd.Series(all_dates,name = 'dates')
df = pd.DataFrame(all_dates)

print(df)
,

您可以为列指定名称:

df.columns = ['date']
,

您应该删除df.dataseries,并在DataFrame中将列添加为列表。在这种情况下,只有一个

import pandas as pd
import datetime as dt
from pandas import DataFrame

start = dt.datetime(2019,end=stop)


df = pd.DataFrame(all_dates,columns=['dates'])

print(df)