微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从旧 df 创建的数据框的问题

如何解决从旧 df 创建的数据框的问题

我尝试使用现有数据框的列创建一个新数据框,但它没有按预期工作。第一个 df 是通过读取 csv 来创建的

例如

a  b  c
1  1  0
0  1  1
0  0  0
1  0  0

df2 = pd.DataFrame(df,columns=['a'])

a    
NaN
NaN
NaN
NaN

我该如何解决这个问题?在“a”的第一个数据帧中,dtype 是 int64

解决方法

快速解决,你的语法有点错误:

df = pd.DataFrame(np.array([[1,2,3],[4,5,6],[7,8,9]]),columns=['a','b','c'])

df2 = pd.DataFrame(columns = ['a'])
df2['a'] = df['a']
df2


    a
0   1
1   4
2   7
,

@pookpash 解决方案也适用于这样的多列;

df2 = pd.DataFrame(columns = ['a','b'])
df2[['a','b']] = df[['a','b']]
,

这里有几个选项。如果您从上下文中知道要切出哪些变量,则可以通过将列表传递到 __getitem__ syntax

来返回仅包含这些列的视图
df2 = df[['a','b']]

>>> df
   a  b  c
0  1  2  3
1  4  5  6
2  7  8  9
>>> df2 = df[['a']]
>>> df2
   a
0  1
1  4
2  7

或者,如果用数字索引而不是按名称索引很重要(假设您的代码应该在不知道前两列名称的情况下自动执行此操作),那么您可以这样做

df2 = df.iloc[:,0:2]

另外,如果您只想制作 DataFrame 的副本,请使用:

df2 = df.copy()

使用任何适合您的问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。