【问题标题】:Create new column in panda data frame在熊猫数据框中创建新列
【发布时间】:2016-08-28 16:32:49
【问题描述】:

我对 python 非常陌生,一直在搜索 google 和 stackoverflow 来解决这个问题,我确信这只是一个语法问题。

我有一个包含几列的数据框。

import pandas as pd
df = pd.read_csv("C:/path/file.csv")

我的 csv 有 5 列和 ~ 100k 行 我只想要第 5 列前 2 位数字的子字符串。

我试过了:

df.assign(new = lambda x: x.column5[0:2],)

这将创建新字段并使用第 5 列中的完整值填充前两行,并为剩余部分提供 NaN。

这些尝试给了我语法错误:

df['new'] = df['column5'].str[0:2]
df.map(lambda df['column5']: [:2])

我只是不知道如何使用通过 pandas 读取的表中现有列的前两位数字创建新列。

如果这是 SAS,我会在几个小时前完成,但我正在尝试使用 Python,因此感谢您的帮助

【问题讨论】:

  • 如果您能提供错误堆栈会很有帮助...

标签: python string pandas


【解决方案1】:

我猜你的 column5 列是 int*/float* dtype,所以 尝试先将其转换为字符串:

df['new'] = df['column5'].astype(str).str[:2]

您可以在读取 CSV 文件时明确指定列的类型:

df = pd.read_csv('file_name.csv', ..., dtype={'column5': object})

【讨论】:

  • 修复了它。在处理以数字表示的代码时,我需要看看是否可以强制 pandas read.csv 将字段读取为字符串而不是 int。
  • 感谢您的更新。 Coursera 上 U Mich 的 Python for Everyone 系列不包括 Pandas :(
  • @RustyCoder,不客气。祝熊猫好运! :)
猜你喜欢
  • 2016-08-07
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
  • 2019-06-07
  • 2016-07-30
  • 1970-01-01
相关资源
最近更新 更多