首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas数据帧创建返回none

Pandas数据帧创建返回none
EN

Stack Overflow用户
提问于 2018-06-10 04:19:00
回答 2查看 2.4K关注 0票数 3

我想在由外部数据文件'ex1data1.txt‘创建的pandas dataframe的开头添加一列1。我写了下面的代码。问题是print(data)命令最终返回的是None。这段代码有什么问题?我想让data成为一个熊猫数据帧。raw_dataX0_都很好,我已经把它们打印出来了。

代码语言:javascript
复制
import numpy as np
import pandas as pd
raw_data = pd.read_csv('ex1data1.txt', header= None, names= ['x1','y'])
X0_ = np.ones(len(raw_data))
idx = 0
data = raw_data.insert(loc=idx, column='x0', value=X0_)
print(data)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-10 04:29:55

另一种解决方案可能如下所示:

代码语言:javascript
复制
import numpy as np
import pandas as pd
raw_data = pd.read_csv('ex1data1.txt', header= None, names= ['x1','y'])

raw_data.insert(loc=0, column='x0', value=1.0)

print(raw_data)
票数 2
EN

Stack Overflow用户

发布于 2018-06-10 04:27:17

pd.DataFrame.insert

您可以使用pd.DataFrame.insert,但请注意,此解决方案已经就位,不需要重新分配。您可能还需要将dtype显式设置为int

代码语言:javascript
复制
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]],
                  columns=['col1', 'col2', 'col3'])

arr = np.ones(len(df.index), dtype=int)
idx = 0
df.insert(loc=idx, column='col0', value=arr)

print(df)

   col0  col1  col2  col3
0     1     1     2     3
1     1     4     5     6

直接定义+重新排序

一种干净的解决方案是简单地添加一行,并将最后一列移动到数据帧的开头。下面是一个完整的示例:

代码语言:javascript
复制
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]],
                  columns=['col1', 'col2', 'col3'])

df['col0'] = 1  # adds column to end of dataframe
cols = [df.columns[-1]] + df.columns[:-1].tolist()  # move last column to front
df = df[cols]  # apply new column ordering

print(df)

   col0  col1  col2  col3
0     1     1     2     3
1     1     4     5     6
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50778190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档