pandas中的Concat 2列- AttributeError:“DataFrame”对象没有属性“concat”

dm7nw8vv  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(299)

我尝试在pandas中沿着2列。代码:

import pandas as pd
import numpy as np
from statsmodels import api as sm
import pandas_datareader.data as web
import datetime

start = datetime.datetime(2015,2,12)
end = datetime.datetime.today()
df = web.get_data_yahoo(['F', '^GSPC'], start, end)

df1 = df.concat(columns=[F['Close'], gspc['Close']], axis=1)

但我得到了以下错误:

AttributeError: 'DataFrame' object has no attribute 'concat'
odopli94

odopli941#

您需要使用pd.concat([df1, df2]),因为df.concat()不存在。
我给你举个例子:

import pandas as pd

df1 = pd.DataFrame(zip(list('bcdfg'), list('aeiou')), columns=['consonants', 'vowels'])
df2 = pd.DataFrame(range(5), columns=['numbers'])
consonants vowels
0          b      a
1          c      e
2          d      i
3          f      o
4          g      u
numbers
0        0
1        1
2        2
3        3
4        4
pd.concat([df1, df2], axis=1)
consonants vowels  numbers
0          b      a        0
1          c      e        1
2          d      i        2
3          f      o        3
4          g      u        4
gmol1639

gmol16392#

正如Nicolas所提到的,concat是一个顶级函数,没有等价的pd.DataFrame方法。除了查看文档外,您可以通过以下方式检查是否存在concat方法:

import pandas as pd
hasattr(pd.DataFrame, 'concat')   # False
hasattr(pd, 'concat')             # True

以下是没有等效pd.DataFrame方法的顶级函数列表:

from inspect import getmembers, isfunction
{n for n,_ in getmembers(pd, isfunction)} - set(dir(pd.DataFrame)) - set(dir(pd.Series))
  • bdate_rangedate_rangeinterval_rangeperiod_rangetimedelta_range
  • concat
  • crosstab
  • x1米11分1秒,x1米12分1秒
  • get_dummies
  • infer_freq
  • json_normalize
  • lreshape
  • merge_asofmerge_ordered
  • read_clipboardread_csvread_excelread_featherread_fwfread_gbqread_hdfread_htmlread_jsonread_orcread_parquetread_pickleread_sasread_spssread_sqlread_sql_queryread_sql_tableread_stataread_tableread_xml
  • x1米39英寸
  • x1米40英寸1x
  • test
  • to_datetimeto_numericto_timedelta
  • wide_to_long

相关问题