我是python的新手,一直在搜索google和stackoverflow以解决此问题,我敢肯定这只是语法问题。
我有一个包含几列的数据框。
import pandas as pd
df = pd.read_csv("C:/path/file.csv")
我的csv有5列和约10万行,我只想要第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])
我只是不知道如何使用通过熊猫读取的表中现有列的前两位数字来创建新列。
如果这是SAS,我几个小时前就已经完成了,但是我尝试使用Python,因此感谢您的帮助
我猜你的column5
列是int * / float * dtype的,所以请先尝试将其转换为字符串:
df['new'] = df['column5'].astype(str).str[:2]
您可以在读取CSV文件时显式指定列的类型:
df = pd.read_csv('file_name.csv', ..., dtype={'column5': object})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句