在本文中,我们将带你了解将特定的选定列提取到新DataFrame中作为副本在这篇文章中,我们将为您详细介绍将特定的选定列提取到新DataFrame中作为副本的方方面面,并解答dataframe提取指定
在本文中,我们将带你了解将特定的选定列提取到新DataFrame中作为副本在这篇文章中,我们将为您详细介绍将特定的选定列提取到新DataFrame中作为副本的方方面面,并解答dataframe提取指定列常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的DataFrame中去除指定列为空的行方法、Numpy数组作为Pandas DataFrame中的元素、Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe、Pandas DataFrame使用另一个DataFrame列过滤行。
本文目录一览:- 将特定的选定列提取到新DataFrame中作为副本(dataframe提取指定列)
- DataFrame中去除指定列为空的行方法
- Numpy数组作为Pandas DataFrame中的元素
- Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe
- Pandas DataFrame使用另一个DataFrame列过滤行
将特定的选定列提取到新DataFrame中作为副本(dataframe提取指定列)
我有一个带有4列的pandas DataFrame,我想创建一个 只有 三个列的 新 DataFrame
。这个问题类似于:从数据框中提取特定的列,但对于不是R的熊猫来说。以下代码不起作用,会引发错误,并且肯定不是熊猫的方式。
import pandas as pdold = pd.DataFrame({''A'' : [4,5], ''B'' : [10,20], ''C'' : [100,50], ''D'' : [-30,-50]})new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can''t be an iterator
熊猫人做这件事的方法是什么?
答案1
小编典典有一种方法可以做到,它实际上看起来类似于R
new = old[[''A'', ''C'', ''D'']].copy()
在这里,您只是从原始数据框中选择所需的列,并为这些列创建变量。如果您想完全修改新的数据框,则可能要.copy()
避免使用SettingWithCopyWarning
。
一种替代方法是使用filter
默认情况下将创建副本的方法:
new = old.filter([''A'',''B'',''D''], axis=1)
最后,根据原始数据帧中的列数,使用a表示它可能更简洁drop
(默认情况下也会创建一个副本):
new = old.drop(''B'', axis=1)
DataFrame中去除指定列为空的行方法
一次,笔者在处理数据时想去除DataFrame中指定列的值为空的这一行,采用了如下做法,但是怎么都没有成功:
# encoding: utf-8 import pandas as pd import math import numpy as np data = pd.read_csv('mydata.csv') print len(data) for i in range(len(data)): if (data['导演'][i] == ‘'): data = data.drop(i) data.to_csv('data.csv')
然后发现,要去除DataFrame中指定列的值为空的这一行,可以在循环中使用numpy或者math中的isnan()判断方法:
# encoding: utf-8 import pandas as pd import math import numpy as np data = pd.read_csv('mydata.csv') print len(data) for i in range(len(data)): if np.isnan(data['导演'][i]): data = data.drop(i) data.to_csv('data.csv')
以上这篇DataFrame中去除指定列为空的行方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
您可能感兴趣的文章:
- 对pandas的dataframe绘图并保存的实现方法
- 对Python中DataFrame按照行遍历的方法
- python之DataFrame实现excel合并单元格
- python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
- 使用DataFrame删除行和列的实例讲解
Numpy数组作为Pandas DataFrame中的元素
是的,可以。尝试将迭代对象放入单个单元格时,请使用.at[]
或.iat[]
来避免广播行为。这也适用于list
和set
。
不好的事情:以一种不涉及遍历行的优化方式进行此类分配可能非常具有挑战性。也就是说,这对于合理大小的阵列仍然可行。而且,如果您真的必须存储数百万个这样的阵列,则可能需要进行根本的重新设计。例如。重构代码,改用MongoDB或其他存储工具,等等。
import pandas as pd
import numpy as np
# preallocate the output dataframe
df = pd.DataFrame(
data=np.zeros((2,4),dtype=object),columns=["Driver","Make","Model","Coordinates"]
)
# element-wise assignment
df.at[0,"Coordinates"] = np.array([[1,1],[1,2,3],[2,2]])
df.at[1,"Coordinates"] = np.array([[0,[0,0]])
# other elements were omitted
结果
print(df)
Driver Make Model Coordinates
0 0 0 0 [[1,2]]
1 0 0 0 [[0,0]]
print(df.at[0,"Coordinates"])
[[1 0 1]
[1 2 3]
[2 0 2]]
print(type(df.at[0,"Coordinates"]))
<class 'numpy.ndarray'>
Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe
我能够使用下面的方法获得所需的输出
df1.merge(df2,left_on = df2.prod_ref.str.extract(''(\d+)'',expand = False),right_on = df1.prod_id.str.extract(''(\d+)'',how = ''left'')
Pandas DataFrame使用另一个DataFrame列过滤行
我会做merge
out = df1.merge(df2[['col1','col2']],on = 'col1',suffixes = ('','1')).query('col3>=col21').drop('col21',1)
out
Out[15]:
col1 col2 col3 col4
1 A 2 0.80 200
2 A 2 0.90 300
3 A 3 0.95 400
4 A 3 0.85 500
5 B 2 0.65 600
6 B 2 0.75 700
9 B 3 0.75 1000
或reindex
out = df1[df1['col3'] >= df2.set_index('col1')['col2'].reindex(df1['col1']).values]
Out[19]:
col1 col2 col3 col4
1 A 2 0.80 200
2 A 2 0.90 300
3 A 3 0.95 400
4 A 3 0.85 500
5 B 2 0.65 600
6 B 2 0.75 700
9 B 3 0.75 1000
您还可以使用map
:
df1.loc[df1.col3 >= df1.col1.map(df2.set_index("col1").col2)]
,
我的方法类似于@Ben_Yo的合并答案,但是代码更多,但也许更直接。
您只需:
- 合并该列并创建新的数据框
ZStack{ Rectangle() .frame(width: geometry.size.width,height: geometry.size.height/3.25) .shadow(radius: 5) .foregroundColor(Color.white) //Words ontop of the Rectangle VStack { HStack { Spacer() Text("Hello World") }.padding(.trailing,40) Spacer() //<-- PROBLEM HERE }//.offset(y: -40) }
- 根据条件(在本例中为
s
),将数据名人 - 最后,将
s['col3'] >= s['col2']
传递给s
,结果将排除布尔系列df1
中返回False
的行:
s
更改为返回True
或False
的布尔系列。
s
今天关于将特定的选定列提取到新DataFrame中作为副本和dataframe提取指定列的介绍到此结束,谢谢您的阅读,有关DataFrame中去除指定列为空的行方法、Numpy数组作为Pandas DataFrame中的元素、Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe、Pandas DataFrame使用另一个DataFrame列过滤行等更多相关知识的信息可以在本站进行查询。
本文标签: