【发布时间】:2021-04-26 21:20:04
【问题描述】:
我有一个名为 bank 的数据框,我想创建一个新列来解释百分比变化,但是当我尝试时遇到此错误:-: 'str' 和 'str' 不支持的操作数类型 我该如何解决这个问题,或者我有其他方法可以创建这个专栏吗?
bank=bank.iloc[0:15,0:4]
pctchange=(bank['Yüksek']-bank['Düşük'])-bank['Düşük']
def risk(bank):
if pctchange>0.3:
val='High Risk'
elif pctchange>0.2 :
val='Middle Risk'
else:
val='Low Risk'
return val
bank.apply(risk,axis=1)
【问题讨论】:
-
你能分享一个你的数据集的例子吗?也许您应该首先创建一个单独的列名称百分比,然后对其应用风险函数。
-
tr.investing.com/equities/eregli-demir-celik-historical-data 这是我从中获取数据的网站。这是一个股票价格数据。您应该点击“Verileri İndir”来下载它。
-
嗨 @blknt3191 - 欢迎来到 Stack Overflow!请参阅how to ask 上的帖子,这是一个很好的问题。具体来说,posting links to datasets is discouraged - 相反,致力于创建一个minimal reproducible example。向我们展示(在代码中或粘贴到问题中)您的数据是什么样的,并尝试帮助我们重新创建问题。祝你好运!
-
在您的情况下,问题可能是因为您的数据被编码为字符串而不是数字类型。见
pandas.to_numeric。这可能以多种方式发生,尤其是在读取文本(例如 csv)数据时,如果数据集中混合了数字和字符。请参阅pd.read_csv的 na_values 和 dtypes 参数。 -
当我现在写“pd.to_numeric(bank)”时遇到:TypeError: arg must be a list, tuple, 1-d array, or Series.我快哭了。