pct_更改方法在pandas datafram中不起作用

2024-05-17 08:20:15 发布

您现在位置:Python中文网/ 问答频道 /正文

使用以下代码,我试图检查数值列的百分比变化:

import pandas as pd

df = pd.read_csv('./data.txt')
df.pct_change(1)

在数据.txt公司名称:

^{pr2}$

但上面的代码返回错误:

/opt/conda/lib/python3.5/site-packages/pandas/core/ops.py in na_op(x, y)
   1187                 if np.prod(xrav.shape) and np.prod(yrav.shape):
   1188                     with np.errstate(all='ignore'):
-> 1189                         result[mask] = op(xrav, yrav)
   1190             elif hasattr(x, 'size'):
   1191                 result = np.empty(x.size, dtype=x.dtype)

TypeError: unsupported operand type(s) for /: 'str' and 'str'

如何利用pct_变化法?删除非数字列(在本例中为日期列)是否重新运行pct_change,然后重新组合数据列?在


Tags: and数据代码txtpandasdfnpprod
1条回答
网友
1楼 · 发布于 2024-05-17 08:20:15

日期的第一列是字符串。df.pct_change(1)在尝试对这些字符串执行除法时引发一个TypeError。在

避免错误的一种方法是在分析CSV时将日期作为索引:

import pandas as pd

df = pd.read_csv('./data.txt', index_col=[0])
print(df.pct_change(1))

收益率

^{pr2}$

您可能还希望将日期字符串解析为日期:

df = pd.read_csv('./data.txt', index_col=[0], parse_dates=[0])

那么索引将是DatetimeIndex,而不是普通的Index(字符串)。 这将允许您对索引和interpolate values based on time进行日期时间算术。在

相关问题 更多 >