在熊猫数据框架中创建新列

时间:2016-05-03 14:47:24

标签: python string pandas

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

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

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

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

我试过了:

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,所以感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

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

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

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