从pandas DataFrame(例如df.iloc[:, 0]
,df['A']
或df.A
等)中选择单个列时,生成的向量会自动转换为Series而不是单列DataFrame.但是,我正在编写一些将DataFrame作为输入参数的函数.因此,我更喜欢处理单列DataFrame而不是Series,以便函数可以假定df.columns可以访问.现在我必须通过使用类似的东西显式地将Series转换为DataFrame pd.DataFrame(df.iloc[:, 0])
.这似乎不是最干净的方法.是否有更优雅的方式直接从DataFrame索引,以便结果是单列DataFrame而不是Series?
我需要将数据保存在键值对中.我在python中搜索并找到了两种方法:
默认数据结构字典.
x = {'key':value}
value = x['key']
Run Code Online (Sandbox Code Playgroud)熊猫系列数据结构.
x = pandas.Series({'key':value})
value = x.key
Run Code Online (Sandbox Code Playgroud)我想知道除了语法之外这两者之间的区别.
我是 Python 的初学者,我正在学习一本教科书来学习 Pandas 模块。我有一个名为 Berri_bike 的数据框,它来自以下代码:
bike_df=pd.read_csv(os.path.join(path,'comptagevelo2012.csv'),parse_dates=['Date'],\
encoding='latin1',dayfirst=True,index_col='Date')
Berri_bike=bike_df['Berri1'].copy() # get only the column='Berri1'
Berri_bike['Weekday']=Berri_bike.index.weekday
weekday_counts = Berri_bike.groupby('Weekday').aggregate(sum)
weekday_counts
Run Code Online (Sandbox Code Playgroud)
我的 Berri_bilk 中有 3 列,一个数据索引 - 从 1/1/2012 到 12/31/2012,以及每个数据带有数字的值列,以及我分配给它的工作日列。但是当我想按值分组时,出现错误:ValueError: Grouper and axis must be same length,我不确定这是什么意思,我想做的很简单,就像在 SQL 中一样,sum(value)工作日分组...谁能告诉我这里发生了什么?
我一直在学习Google的机器学习速成课程,并且他们有一个部分,其中有一个练习教您如何使用pandas和tensorflow。在开始时,他们抓住数据帧,并在紧接着抓住“ total_rooms”和“ median_house_value”系列之后。他们用双括号抓住“ total_rooms”系列,而只用一组括号抓住“ median_house_value”系列。我通读了panda的文档,似乎您需要使用双括号索引到一系列索引中的唯一原因是立即索引2列,即data california_housing_dataframe [[“ median_house_value”,“ total_rooms”]]。
这是我正在谈论的代码。
california_housing_dataframe = pd.read_csv("https://dl.google.com/mlcc/mledu-datasets/california_housing_train.csv", sep=",")
# Define the input feature: total_rooms.
my_feature = california_housing_dataframe[["total_rooms"]]
# Configure a numeric feature column for total_rooms.
feature_columns = [tf.feature_column.numeric_column("total_rooms")]
targets = california_housing_dataframe["median_house_value"]
Run Code Online (Sandbox Code Playgroud)
如果需要更多上下文,请参见以下更多代码:
california_housing_dataframe = pd.read_csv("https://dl.google.com/mlcc/mledu-datasets/california_housing_train.csv", sep=",")
# Define the input feature: total_rooms.
my_feature = california_housing_dataframe[["total_rooms"]]
# Configure a numeric feature column for total_rooms.
feature_columns = [tf.feature_column.numeric_column("total_rooms")]
targets = california_housing_dataframe["median_house_value"]
def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):
"""Trains a linear regression model of one feature.
Args: …
Run Code Online (Sandbox Code Playgroud) 我\xe2\x80\x99已经进行了大量的搜索,并看到了许多解释差异的帖子,但我还没有遇到明确的用例。我确实理解一般的差异,但我想知道为什么我应该学习如何使用 Series,因为单列 Dataframe 似乎可以执行 Series 可以执行的所有操作。
\n\n本质上,当我应该使用 Series 或 Dataframe 来完成我面前的任务时,我无法将对它们差异的理解推断为 \xe2\x80\x9c?\xe2\x80\x9d。
\n