如何解决从旧 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 举报,一经查实,本站将立刻删除。