在Pandas数据框架中创建新列

2024-04-20 12:27:50 发布

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

我对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])

我只是不知道如何使用通过pandas读入的表中现有列的前两位来创建新列。你知道吗

如果这是SAS的话,我几个小时前就已经完成了,但是我正在尝试使用Python,所以非常感谢您的帮助


Tags: csv数据lambdaimportpandasdfnewread
1条回答
网友
1楼 · 发布于 2024-04-20 12:27:50

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

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

读取CSV文件时,可以显式指定列的类型:

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

相关问题 更多 >