numpy Pandas TypeError:不支持-:‘Float’和‘str’(Python)的操作数类型

ioekq8ef  于 2022-11-10  发布在  Python
关注(0)|答案(3)|浏览(160)

使用右侧脚手架中定义的AUD_USDI_lst和EUR_AUD_lst列表将Series合并为DataFrame,执行以下任务:
1.创建一个名为AUD_USDI_SELECTION的系列,其中包含澳元兑美元汇率的非遗漏引号。具体地说,就是:
该系列应将日期作为行标签。澳元兑美元的价值应该不会丢失。
1.创建一个名为EUR_AUD_SELECTION的系列,其中不缺少欧元/澳元汇率的引号。具体地说,就是:
该系列应将日期作为行标签。不应该有丢失的欧元/澳元的值。
1.将这两个系列合并到一个名为df的数据框中,因此它将日期作为行标签,并将‘AUD/U.S.’、‘EURR/AUD’作为列标签。

import pandas as pd
import numpy as np
from unanswered import *

aud_usd_lst = [
    ('2020-09-08', 0.7280),
    ('2020-09-09', 0.7209),
    ('2020-09-11', 0.7263),
    ('2020-09-14', 0.7281),
    ('2020-09-15', 0.7285),
    ]

eur_aud_lst = [
    ('2020-09-08',  1.6232),
    ('2020-09-09',  1.6321),
    ('2020-09-10',  1.6221),
    ('2020-09-11',  1.6282),
    ('2020-09-15',  1.6288),
    ]

以下是我的代码:

aud_usd_series = pd.Series(np.array(aud_usd_lst)[:,1], index=np.array(aud_usd_lst)[:,0])
aud_usd_series

eur_aud_series = eur_aud_series = pd.Series(np.array(eur_aud_lst)[:,1], index=np.array(eur_aud_lst)[:,0])
eur_aud_series

df = pd.DataFrame([aud_usd_series,eur_aud_series]).T
df.columns = ['AUD/USD','EUR/AUD']
df

我试着运行代码,它说
TypeError:不支持-:‘Float’和‘str’的操作数类型
有什么建议吗?

rqqzpn5f

rqqzpn5f1#

如果这是您根据问题中的数据集想要的输出:

date  aud/usd  eur/aud
0  2020-09-08   0.7280   1.6232
1  2020-09-09   0.7209   1.6321
2  2020-09-11   0.7263   1.6282
3  2020-09-15   0.7285   1.6288

然后,代码如下:

from io import StringIO
import pandas as pd

aud_usd_lst = [
    ('2020-09-08', 0.7280),
    ('2020-09-09', 0.7209),
    ('2020-09-11', 0.7263),
    ('2020-09-14', 0.7281),
    ('2020-09-15', 0.7285),
    ]
eur_aud_lst = [
    ('2020-09-08',  1.6232),
    ('2020-09-09',  1.6321),
    ('2020-09-10',  1.6221),
    ('2020-09-11',  1.6282),
    ('2020-09-15',  1.6288),
    ]

temp1 = []
temp2 = []
date_list = []
for x in aud_usd_lst:
    temp1.append(x[0])
for x in eur_aud_lst:
    temp2.append(x[0])
date_list = sorted(list(set(temp1).intersection(temp2)))

new_df_as_string = "date,aud/usd,eur/aud\n"
for x in date_list:
    new_df_as_string = new_df_as_string +x+","
    for y in aud_usd_lst:
        if y[0] == x:
            new_df_as_string = new_df_as_string +str(y[1])+","
    for z in eur_aud_lst:
        if z[0] == x:
            new_df_as_string = new_df_as_string +str(z[1])+"\n"

new_df_as_file = StringIO(new_df_as_string)
df = pd.read_csv(new_df_as_file, sep=",")
print(df)
kgsdhlau

kgsdhlau2#

TypeError:不支持-:‘Float’和‘str’的操作数类型
这意味着您在浮点和字符串之间进行不可能的🙂操作

h22fl7wq

h22fl7wq3#

将您的所有代码放入Codex的编辑功能中,并将错误放入说明框中。告诉它修复错误。

相关问题