如何停止试图将字符串转换为浮点数的熊猫?

埃米尔·马金

我正在读取一个Excel文件,并希望将datetime列的值分隔为每个月的1号。贬值工作正常,但熊猫尝试将字符串隐藏起来使其浮起,并在将其添加为现有数据帧的同伴时抛出错误。

如何禁用此功能,仅获取具有字符串或日期类型的列?

我尝试了各种映射/类型转换,但没有效果(错误)。如果我转换为proxy int,类型转换问题将消失(因为它可以将其转换为float),但这是一个丑陋的解决方法,而不是解决实际问题。

说明该问题的代码段

df = pd.read_excel(file_name, skiprows=[1], skip_footer=1)

print(df['Purch.Date'].dtype)
>>> datetime64[ns]

print(df['Purch.Date'].head())
>>> 0   2016-06-23
>>> 1   2016-06-09
>>> 2   2016-06-24
>>> 3   2016-06-24
>>> 4   2016-06-24


df['YearMonthCapture'] = df['Purch.Date'].map(lambda x: str(x.replace(day=1).date()) ).astype(str)

>>> ValueError: could not convert string to float: '2016-06-01'

# === Other approached resulting in same error ===
#df['YearMonthCapture'] = df['Purch.Date'].map(lambda x: x.replace(day=1)) 
#df['YearMonthCapture'] = pd.Series(df['Purch.Date'].map(lambda x: str(x.replace(day=1).date()) ), dtype='str')
#df['YearMonthCapture'] = pd.Series(df['Purch.Date'].apply(lambda x: str(x.replace(day=1).date()) ), dtype='str')

# === Ugly work around that does not really address the problem) ===
df['YearMonthCapture'] = pd.Series(df['Purch.Date'].apply(lambda x: 100*x.year + x.month)
埃德·楚姆

您可以通过访问day属性并TimedeltaIndex从日期时间中减去a并将其强制转换为str来实现:

In [138]:
df = pd.DataFrame({'date':pd.date_range(dt.datetime(2016,1,1), periods=4)})
df

Out[138]:
        date
0 2016-01-01
1 2016-01-02
2 2016-01-03
3 2016-01-04

In [142]:
(df['date'] - pd.TimedeltaIndex(df['date'].dt.day - 1, unit='D')).astype(str)

Out[142]:
0    2016-01-01
1    2016-01-01
2    2016-01-01
3    2016-01-01
Name: date, dtype: object

因此,在您的情况下:

df['YearMonthCapture'] = (df['Purch.Date'] - pd.TimedeltaIndex(df['Purch.Date'].dt.day - 1, unit='D')).astype(str)

应该管用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python将字符串转换为浮点数

来自分类Dev

formatFloat:将浮点数转换为字符串

来自分类Dev

将字符串转换为浮点数

来自分类Dev

无法将字符串转换为浮点数

来自分类Dev

熊猫将浮点数转换为不带小数的字符串

来自分类Dev

熊猫数据框将特定列从字符串转换为浮点数

来自分类Dev

熊猫Python错误:无法将字符串转换为浮点数

来自分类Dev

如何识别浮点变量?获取 ValueError: 无法将字符串转换为浮点数:

来自分类Dev

如何将字符串转换为浮点数?(温度转换器)

来自分类Dev

ValueError: 无法将字符串转换为浮点数---如何将字符串列表的列表转换为 numpy 数组类型浮点数?

来自分类Dev

将字符串转换为浮点数:将“ 8.9km”转换为浮点数

来自分类Dev

如何将包含逗号的字符串转换为等效的浮点数?

来自分类Dev

如何将字符串转换为浮点数

来自分类Dev

如何使用jQuery将字符串的多维数组转换为浮点数?

来自分类Dev

如何将逗号作为字符串的数字转换为Javascript中的浮点数

来自分类Dev

如何将浮点数0.0转换为返回字符串0?

来自分类Dev

如何避免错误:无法将字符串转换为浮点数

来自分类Dev

如何修复“ ValueError:无法将字符串转换为浮点数”?

来自分类Dev

在monotouch中,如何将字符串转换为十进制/浮点数?

来自分类Dev

如何使用PHP将数字字符串转换为浮点数?

来自分类Dev

Ruby:如何将日期时间字符串转换为纪元时间的浮点数?

来自分类Dev

如何将数字的英语字符串转换为浮点数(例如,“ 26” => 26.0)

来自分类Dev

如何修复 ValueError :无法将字符串转换为浮点数:在 Python 中

来自分类Dev

如何将包含“/”的字符串转换为 Python 中的浮点数

来自分类Dev

如何将字符串转换为浮点数?

来自分类Dev

如何修复“ValueError:无法将字符串转换为浮点数:'East'”(Python)

来自分类Dev

如何将字符串转换为数字范围(浮点数)?

来自分类Dev

如何将字符串转换为浮点数组?

来自分类Dev

将百分比字符串转换为浮点数在熊猫中read_csv

Related 相关文章

  1. 1

    Python将字符串转换为浮点数

  2. 2

    formatFloat:将浮点数转换为字符串

  3. 3

    将字符串转换为浮点数

  4. 4

    无法将字符串转换为浮点数

  5. 5

    熊猫将浮点数转换为不带小数的字符串

  6. 6

    熊猫数据框将特定列从字符串转换为浮点数

  7. 7

    熊猫Python错误:无法将字符串转换为浮点数

  8. 8

    如何识别浮点变量?获取 ValueError: 无法将字符串转换为浮点数:

  9. 9

    如何将字符串转换为浮点数?(温度转换器)

  10. 10

    ValueError: 无法将字符串转换为浮点数---如何将字符串列表的列表转换为 numpy 数组类型浮点数?

  11. 11

    将字符串转换为浮点数:将“ 8.9km”转换为浮点数

  12. 12

    如何将包含逗号的字符串转换为等效的浮点数?

  13. 13

    如何将字符串转换为浮点数

  14. 14

    如何使用jQuery将字符串的多维数组转换为浮点数?

  15. 15

    如何将逗号作为字符串的数字转换为Javascript中的浮点数

  16. 16

    如何将浮点数0.0转换为返回字符串0?

  17. 17

    如何避免错误:无法将字符串转换为浮点数

  18. 18

    如何修复“ ValueError:无法将字符串转换为浮点数”?

  19. 19

    在monotouch中,如何将字符串转换为十进制/浮点数?

  20. 20

    如何使用PHP将数字字符串转换为浮点数?

  21. 21

    Ruby:如何将日期时间字符串转换为纪元时间的浮点数?

  22. 22

    如何将数字的英语字符串转换为浮点数(例如,“ 26” => 26.0)

  23. 23

    如何修复 ValueError :无法将字符串转换为浮点数:在 Python 中

  24. 24

    如何将包含“/”的字符串转换为 Python 中的浮点数

  25. 25

    如何将字符串转换为浮点数?

  26. 26

    如何修复“ValueError:无法将字符串转换为浮点数:'East'”(Python)

  27. 27

    如何将字符串转换为数字范围(浮点数)?

  28. 28

    如何将字符串转换为浮点数组?

  29. 29

    将百分比字符串转换为浮点数在熊猫中read_csv

热门标签

归档