【发布时间】:2018-07-16 18:41:59
【问题描述】:
我很新,所以如果这个问题非常基本,请原谅这个问题,但我有一个包含一些列的数据框(开高低和收盘)。我想编写一个简单的函数,它只采用 Close 列(作为默认值,但允许指定任何其他列)并只返回一个包含该列的新数据框。
我下面的代码只返回一个带有列名但没有数据的数据框
import pandas as pd
df = pd.read_csv('Book2.csv')
df = df.loc[2:, :'Close'].drop('Unnamed: 7', axis=1)
df.rename(columns={'Unnamed: 0': 'X'}, inplace=True)
df.drop(['O', 'H', 'L'], axis=1, inplace=True)
def agg_data(ys):
agg_df = pd.DataFrame(ys, columns=['Y Values'])
return agg_df
result = agg_data(df['Close'])
print(result)
【问题讨论】:
-
你可以做
result = df[['Close']]。双方括号会为你做的。 -
我尝试侵入您的系统以访问 Book2.csv 并运行您的代码,但我不能,因为我不是黑客。不幸的是,除此之外,我没有其他方法可以重现您的问题。
-
我更好奇为什么我的语法会产生一个空的数据框。Book2.cvs 只是一堆数据。从该代码产生的最终 df 只是带有列标题(开盘、高盘、低盘、收盘)的数据行
标签: python python-3.x pandas numpy dataframe