Python 广播双数据帧

Python 广播双数据帧,python,pandas,datetime,Python,Pandas,Datetime,我有两个数据帧,如下所示: 第一个数据帧数据: 2019-06-19 2019-06-20 2019-06-21 2019-06-22 2019-06-23 2019-06-24 2019-06-25 currency

我有两个数据帧,如下所示:

第一个数据帧
数据

             2019-06-19     2019-06-20     2019-06-21     2019-06-22     2019-06-23     2019-06-24     2019-06-25
 currency                                                                                                         
BCH          485.424079     485.424079      57.574609      57.559609      57.559609      57.559609      57.559609
BTC          202.204572     256.085103     197.291801     177.359726     177.359726     177.359726     252.859726
BTG         4065.370000    4065.370000    4065.370000    4065.370000    4065.370000    4065.370000    4065.370000
ETC        40001.000000   40001.000000   40001.000000   40001.000000   40001.000000   40001.000000       0.000000
ETH         4092.917231    4092.917231    1497.655594    1497.655594    1497.655594    1497.655594    1497.655594
第二个数据帧
sys\u bal

created_at  2019-06-19  2019-06-20  2019-06-21  2019-06-22  2019-06-23  2019-06-24  2019-06-25
 currency                                                                                      
1WO            1997308     1996908     1996908     1996908     1996908     1996908     1996908
ABX             241444      241444      241444      241444      241444      241444      241444
ADH            5981797     5981797     5981797     5981797     5981797     5981797     5981797
ALX             385466      385466      385466      385466      385466      385466      385466
AMLT           4749604     4749604     4749604     4687869     4687869     4687869     4687869
BCH               4547        4547        4483        4463        4465        4467        4403
BRC            1231312     1231312     1231312     1231312     1231312     1231312     1231142
BTC               7366        7342        7287        7307        8292        8635        7772
BTRN          15236038    15236038    15236038    15236038    15236038    15236233    15236233
我尝试通过执行
pos\u bal=sys\u bal+data
将一个添加到另一个。它们大小相同,但我有一个错误

错误:

pos_bal = sys_bal + data
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/ops.py", line 1547, in f
other = _align_method_FRAME(self, other, axis)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/ops.py", line 1481, in _align_method_FRAME
right = to_series(right)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/ops.py", line 1456, in to_series
given_len=len(right)))
ValueError: Unable to coerce to Series, length must be 7: given 2
我打印了两个数据帧的数据类型,得到了以下结果:

第一数据帧:

2019-06-19    float64
2019-06-20    float64
2019-06-21    float64
2019-06-22    float64
2019-06-23    float64
2019-06-24    float64
2019-06-25    float64
dtype: object
   created_at
0  2019-06-19    int64
   2019-06-20    int64
   2019-06-21    int64
   2019-06-22    int64
   2019-06-23    int64
   2019-06-24    int64
   2019-06-25    int64
 dtype: object
第二数据帧:

2019-06-19    float64
2019-06-20    float64
2019-06-21    float64
2019-06-22    float64
2019-06-23    float64
2019-06-24    float64
2019-06-25    float64
dtype: object
   created_at
0  2019-06-19    int64
   2019-06-20    int64
   2019-06-21    int64
   2019-06-22    int64
   2019-06-23    int64
   2019-06-24    int64
   2019-06-25    int64
 dtype: object
data.info()
输出:

<class 'pandas.core.frame.DataFrame'>
Index: 12 entries, BCH to XRP
Data columns (total 7 columns):
2019-06-20    12 non-null float64
2019-06-21    12 non-null float64
2019-06-22    12 non-null float64
2019-06-23    12 non-null float64
2019-06-24   12 non-null float64
2019-06-25    12 non-null float64
2019-06-26   12 non-null float64
dtypes: float64(7)
memory usage: 768.0+ bytes
None
<class 'pandas.core.frame.DataFrame'>
 Index: 126 entries, 1WO to ZPR
 Data columns (total 7 columns):
 2019-06-20    126 non-null int64
 2019-06-21    126 non-null int64
 2019-06-22    126 non-null int64
 2019-06-23    126 non-null int64
 2019-06-24    126 non-null int64
 2019-06-25    126 non-null int64
 2019-06-26    126 non-null int64
 dtypes: int64(7)
 memory usage: 7.9+ KB
 None
编辑:如果接收到的“dict”对象没有属性“set\u index”
这意味着您没有像我预期的那样使用数据帧,请尝试在您的数据上使用:

data=pd.DataFrame.from_dict(data)
sys_bal=pd.DataFrame.from_dict(sys_bal)
data=data.set_index('currency')
sys_bal=sys_bal.set_index('currency')

df=pd.concat([data,sys_bal])
print(df)
         2019-06-19   2019-06-20
currency                        
BCH       485.424079  485.424079
BTC       202.204572  256.085103
1WO          1997308     1996908
ABX           241444      241444
它应该适合您,如果您不尝试查看您的数据帧,我看到在
sys\u bal
中,您在

编辑:如果接收到的“dict”对象没有属性“set\u index”
这意味着您没有像我预期的那样使用数据帧,请尝试在您的数据上使用:

data=pd.DataFrame.from_dict(data)
sys_bal=pd.DataFrame.from_dict(sys_bal)
data=data.set_index('currency')
sys_bal=sys_bal.set_index('currency')

df=pd.concat([data,sys_bal])
print(df)
         2019-06-19   2019-06-20
currency                        
BCH       485.424079  485.424079
BTC       202.204572  256.085103
1WO          1997308     1996908
ABX           241444      241444

它应该适合您,如果您不想查看您的数据帧,我看到在
sys\u bal
中,您在
处创建了额外的标题名
,问题是第二个数据帧在列中有
多索引
,所以需要首先通过以下方式删除它:


问题是第二个数据帧在列中有
多索引,所以需要首先通过以下方式将其删除:



如何工作
pos\u bal=sys\u bal.add(数据)
?两个都是数据帧吗?它不工作。我也有同样的错误。是的,它们都是DataFrameScan无法复制的,可能是因为您没有提供关于如何创建初始数据帧的足够详细信息。简单的复制粘贴适用于普通数据帧(一个简单的RangeIndex作为索引,一个简单的str索引没有列的名称),但一旦涉及到非普通索引或列,您必须提供Python代码来创建数据帧。如何工作
pos_bal=sys_bal.add(data)
?两个都是数据帧吗?它不工作。我也有同样的错误。是的,它们都是DataFrameScan无法复制的,可能是因为您没有提供关于如何创建初始数据帧的足够详细信息。简单的复制粘贴适用于普通数据帧(一个简单的RangeIndex作为索引,一个简单的str索引没有列的名称),但是一旦涉及到非普通索引或列,您就必须提供Python代码来创建数据帧。哦,我想您要添加两个数据帧吗?什么是
data
data
是第一个数据框`pos_-bal=pd.concat([pos_-bal,data])文件“/Library/Frameworks/Python.framework/Versions/3.7/site packages/pandas/core/reforme/concat.py”,第225行,在concat copy=copy,sort=sort)文件中“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/reformate/concat.py”,init raise TypeError(msg)TypeError中第286行:无法连接“”类型的对象;只有pd.Series、pd.DataFrame和pd.Panel(已弃用)OBJ是有效的`同样的问题再次出现。它认为数据帧是dict。但它不应该是dict。请如何使它最终成为df?错误是,
“dict”对象没有属性“set_index”
@mama dede查看我的编辑,你给我们提供了错误的示例我想,你没有使用数据帧,我以前做过转换您将索引从dict设置为dataframe噢,我以为您要添加两个数据帧?什么是
数据
数据
是第一个数据帧`pos_-bal=pd.concat([pos_-bal,data])文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/reforme/concat.py,第225行,在concat copy=copy,sort=sort)文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/restrape/concat.py”中,第286行,在init-raise-TypeError(msg)TypeError中:无法连接“”类型的对象;只有pd.Series、pd.DataFrame和pd.Panel(已弃用)对象是有效的`同样的问题再次出现。它考虑数据帧是dict,但不应该是dict。请问如何使其最终成为df?错误是,
“dict”对象没有属性“set_index”
@mama dede请看我的编辑,你给了我们错误的示例我想,你没有使用数据帧,我在你将dict的索引设置为dataframe@mamadede-好的,那么什么是
print(data.info())
print(sys\u bal.info())
?我已将
信息
添加到data@mamadede-好的,那么什么是
print(data.info())
print(sys\u bal.info())
?我已经在数据中添加了
info