我是一个非常新的人,所以请问这个问题是否很基本,但是我有一个带有一些列(Open High Low和Close)的数据框。我想编写一个简单的函数,该函数只接受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)
答案 0 :(得分:0)
当您的数据已经是pandas数据帧时,则无需将数据放入pd.DataFrame()。如果我误解了您想要什么,请纠正我,但据我所知,这应该足够了:
result = df['close'].copy()
如果您不使用copy(),则对 result 进行更改时,初始 df 也将更改,因此,由于您需要一个新的数据框(或一系列,因为它是一维的),可能正是您想要的。