GVKun编程网logo

在pandas.DataFrame的对角线上设置值(pandas dataframe 赋值)

2469

针对在pandas.DataFrame的对角线上设置值和pandasdataframe赋值这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Pandas-使用一个Dataframe列的子字符串

针对在pandas.DataFrame的对角线上设置值pandas dataframe 赋值这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe、Pandas DataFrame使用另一个DataFrame列过滤行、pandas.DataFrame.from_dict直接从字典构建DataFrame的方法、pandas.DataFrame如何使用?总结pandas.DataFrame实例用法等相关知识,希望可以帮助到你。

本文目录一览:

在pandas.DataFrame的对角线上设置值(pandas dataframe 赋值)

在pandas.DataFrame的对角线上设置值(pandas dataframe 赋值)

我有一个熊猫数据框,我想将对角线设置为0

import numpyimport pandasdf = pandas.DataFrame(numpy.random.rand(5,5))dfOut[6]:     0           1           2           3               40    0.536596    0.674319    0.032815    0.908086    0.2153341    0.735022    0.954506    0.889162    0.711610    0.4151182    0.119985    0.979056    0.901891    0.687829    0.9475493    0.186921    0.899178    0.296294    0.521104    0.6389244    0.354053    0.060022    0.275224    0.635054    0.0757385 rows × 5 columns

现在我想将对角线设置为0:

for i in range(len(df.index)):    for j in range(len(df.columns)):        if i==j:            df.loc[i,j] = 0dfOut[9]:     0           1           2           3           40    0.000000    0.674319    0.032815    0.908086    0.2153341    0.735022    0.000000    0.889162    0.711610    0.4151182    0.119985    0.979056    0.000000    0.687829    0.9475493    0.186921    0.899178    0.296294    0.000000    0.6389244    0.354053    0.060022    0.275224    0.635054    0.0000005 rows × 5 columns

但是必须有比这更Python化的方式!?

答案1

小编典典
In [21]: df.values[[np.arange(df.shape[0])]*2] = 0In [22]: dfOut[22]:           0         1         2         3         40  0.000000  0.931374  0.604412  0.863842  0.2803391  0.531528  0.000000  0.641094  0.204686  0.9970202  0.137725  0.037867  0.000000  0.983432  0.4580533  0.594542  0.943542  0.826738  0.000000  0.7532404  0.357736  0.689262  0.014773  0.446046  0.000000

请注意,这仅df在行数与列数相同时起作用。适用于任意形状的另一种方法是使用np.fill_diagonal:

In [36]: np.fill_diagonal(df.values, 0)

Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe

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列过滤行

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的合并答案,但是代码更多,但也许更直接。

您只需:

  1. 合并该列并创建新的数据框 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) }
  2. 根据条件(在本例中为s
  3. ),将数据名人s更改为返回TrueFalse的布尔系列。
  4. 最后,将s['col3'] >= s['col2']传递给s,结果将排除布尔系列df1中返回False的行:

s

pandas.DataFrame.from_dict直接从字典构建DataFrame的方法

pandas.DataFrame.from_dict直接从字典构建DataFrame的方法

pandas函数中pandas.DataFrame.from_dict 直接从字典构建DataFrame 。

参数解析

DataFrame from_dict()方法用于将Dict转换为DataFrame对象。 此方法接受以下参数。

  • data: dict or array like object to create DataFrame.data :字典或类似数组的对象来创建DataFrame。
  • orient: The orientation of the data. The allowed values are (‘columns’, ‘index’), default is the ‘columns’.  orient :数据的方向。 允许值为(“列”,“索引”),默认值为“列”。 Specify orient=''index'' to create the DataFrame using dictionary keys as rows:。 当参数orient为index值时,会将字典的keys作为DataFrame的行。(默认是keys变为列)
  • columns: a list of values to use as labels for the DataFrame when orientation is ‘index’. If it’s used with columns orientation, ValueError is raised.     columns :当方向为“索引”时,用作DataFrame标签的值的列表。 如果与列方向一起使用,则会引发ValueError 。

实例  

1)By default the keys of the dict become the DataFrame columns:

默认是将字典的keys作为列

data = {''col_1'': [3, 2, 1, 0], ''col_2'': [''a'', ''b'', ''c'', ''d'']}
pd.DataFrame.from_dict(data)
   col_1 col_2
0      3     a
1      2     b
2      1     c
3      0     d

2) Specify orient=''index'' to create the DataFrame using dictionary keys as rows: 参数orient为index值时,会将字典的keys作为DataFrame的行

data = {''row_1'': [3, 2, 1, 0], ''row_2'': [''a'', ''b'', ''c'', ''d'']}
pd.DataFrame.from_dict(data, orient=''index'')
       0  1  2  3
row_1  3  2  1  0
row_2  a  b  c  d

3) orient为index值时, 可以手动命名列名

pd.DataFrame.from_dict(data, orient=''index'',
                       columns=[''A'', ''B'', ''C'', ''D''])
       A  B  C  D
row_1  3  2  1  0
row_2  a  b  c  d

参考: pandas.DataFrame.from_dict — pandas 1.3.4 documentation

到此这篇关于pandas.DataFrame.from_dict直接从字典构建DataFrame的方法的文章就介绍到这了,更多相关pandas字典构建DataFrame内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • Pandas DataFrame转换为字典的方法
  • pandas通过字典生成dataframe的方法步骤
  • 从列表或字典创建Pandas的DataFrame对象的方法
  • pandas 实现字典转换成DataFrame的方法

pandas.DataFrame如何使用?总结pandas.DataFrame实例用法

pandas.DataFrame如何使用?总结pandas.DataFrame实例用法

这篇文章主要给大家介绍了关于python中pandas.dataframe排除特定行的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考价值,需要的朋友们下面来一起看看吧。前言大家在使用python进行数据分析时,经常要使用到的一个数据结构就是pandas的dataframe,关于python中pandas.dataframe的基本操作,大家可以查看这篇文章。pandas.dataframe排除特定行如果我们想要像excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选。但是如果我们只想要所有内容中不包含特定行的内容,却并没有一个isnotin()方法。我今天的工作就遇到了这样的需求,经常查找之后,发现只能换种方式使用isin()来实现这个需求。示例如下:in [3]: df&

1. 关于python中pandas.DataFrame的基本操作

pandas.DataFrame如何使用?总结pandas.DataFrame实例用法

简介:这篇文章主要给大家介绍了关于python中pandas.DataFrame排除特定行的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考价值,需要的朋友们下面来一起看看吧。

2. 关于python中pandas.DataFrame对行与列求和及添加新行与列示例代码

pandas.DataFrame如何使用?总结pandas.DataFrame实例用法

简介:pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这篇文章主要给大家介绍了python中pandas.DataFrame对行与列求和及添加新行与列的方法,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。

3. python中pandas.DataFrame(创建、索引、增添与删除)的简单操作方法介绍

pandas.DataFrame如何使用?总结pandas.DataFrame实例用法

简介:这篇文章主要介绍了python中pandas.DataFrame的简单操作方法,其中包括创建、索引、增添与删除等的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

4. 详解python中pandas.DataFrame排除特定行方法示例代码

pandas.DataFrame如何使用?总结pandas.DataFrame实例用法

简介:这篇文章主要给大家介绍了关于python中pandas.DataFrame排除特定行的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考价值,需要的朋友们下面来一起看看吧。

【相关问答推荐】:

python - pymongo 取出来的 cursor 转 pandas 的 dataframe

python - pandas内存错误

以上就是pandas.DataFrame如何使用?总结pandas.DataFrame实例用法的详细内容,更多请关注php中文网其它相关文章!

今天的关于在pandas.DataFrame的对角线上设置值pandas dataframe 赋值的分享已经结束,谢谢您的关注,如果想了解更多关于Pandas - 使用一个 Dataframe 列的子字符串比较两个 Dataframe、Pandas DataFrame使用另一个DataFrame列过滤行、pandas.DataFrame.from_dict直接从字典构建DataFrame的方法、pandas.DataFrame如何使用?总结pandas.DataFrame实例用法的相关知识,请在本站进行查询。

本文标签: