小编Dra*_*och的帖子

使用另一个 Dataframe 中的索引替换 Dataframe 中的行

我有两个具有相同结构的数据框dfdf_a. 是我需要重新整合到的df_a一个子集。本质上,有不同的行(具有不同的索引)已被操作。dfdfdf_adf

df下面是每个和的索引示例df_a。它们都具有相同的列结构,因此所有列都是相同的,只是行和行的索引不同。

>> df
index  ..  other_columns  ..
0   
1
2
3
. .
9999
10000
10001

[10001 rows x 20 columns]

>> df_a
index  ..  other_columns  ..
5
12
105
712
. .
9824
9901
9997

[782 rows x 20 columns]
Run Code Online (Sandbox Code Playgroud)

因此,我只想用 中的相应行覆盖df具有 索引 的行。我检查了用另一个 df 中的行替换 Pandas df 中的行替换 pandas 数据框中的行,但这些都没有告诉如何使用另一个数据框的索引来替换行中的值。df_adf_a

python pandas

5
推荐指数
1
解决办法
3369
查看次数

Pandas:查找并打印列中的所有浮点数

我尝试过使用

if df.loc[df['col_1']] == float:
    print(df.loc[df['col_1']])
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。我基本上只是想float在列中找到数据类型的所有内容,看看它是什么以及在哪里。我该如何去做呢?

我需要这样做,因为该列是一个对象,df.dtypes但在尝试对其进行字符串操作时,我发现TypeError有浮点数。

python pandas

2
推荐指数
1
解决办法
4831
查看次数

Group by 模糊字符串与 fuzzywuzzy 和 groupby 匹配

我有一个随机单词和名称的数据集,我正在尝试对所有相似的单词和名称进行分组。因此给出下面的数据框:

     Name           ID            Value
0    James           1             10
1    James 2         2             142
2    Bike            3             1
3    Bicycle         4             1197
4    James Marsh     5             12
5    Ants            6             54
6    Job             7             6
7    Michael         8             80007  
8    Arm             9             47 
9    Mike K          10            9
10   Michael k       11            1
Run Code Online (Sandbox Code Playgroud)

我的伪代码类似于:

import pandas as pd
from fuzzywuzzy import fuzz

minratio = 95
for idx1, name1 in df['Name'].iteritems():
   for idx2, name2 in df['Name'].iteritems():
      ratio = fuzz.WRatio(name1, name2)
      if ratio …
Run Code Online (Sandbox Code Playgroud)

python pandas fuzzywuzzy

2
推荐指数
1
解决办法
3218
查看次数

使用 Pandas 将重复项提取到新数据框中

我有一个包含许多列的大型数据框。其中一列应该是唯一 ID,另一列是年份。不幸的是,Unique ID 列中有重复项。

我知道如何生成所有重复项的列表,但我真正想做的是将它们提取出来,以便只保留第一个条目(按年份)。例如,数据框目前看起来像这样(还有一堆其他列):

ID    Year
----------
123   1213
123   1314
123   1516
154   1415
154   1718
233   1314
233   1415
233   1516
Run Code Online (Sandbox Code Playgroud)

我想要做的是将此数据框转换为:

ID    Year
----------
123   1213
154   1415
233   1314
Run Code Online (Sandbox Code Playgroud)

在仅将那些重复项存储在另一个数据帧中时:

ID    Year
----------
123   1314
123   1516
154   1415
233   1415
233   1516
Run Code Online (Sandbox Code Playgroud)

我可以逐年删除重复项以保留最旧的条目,但我不确定如何将重复项放入我可以存储为另一个数据框的列表中。

我该怎么做?

python duplicates dataframe pandas

1
推荐指数
1
解决办法
1215
查看次数

当一个列表的元素位于 pandas 列中时,如何检查一个列表的元素是否是另一个元素

给定一个数据框

d = {'col1': [['how', 'are', 'you'], ['im', 'fine', 'thanks'], ['you', 'know'], [np.nan]],
     'col2': [['tell', 'how', 'me', 'you'], ['who', 'cares'], ['know', 'this', 'padewan'], ['who', 'are', 'you']]

df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

我想创建第三列col3,它是列表中的任何元素,col2该元素包含在列表中相应行的列表中col1,否则np.nan

它必须采用任何匹配的元素。

在这种情况下,那么,col3将是:

           col1                      col2                           col3
0   ['how', 'are', 'you']      ['tell', 'how, 'me', 'you']        ['how', 'you']
1   ['im', 'fine', 'thanks']   ['who', 'cares']                   [np.nan] 
2   ['you', 'know']            ['know', 'this', 'padewan']        ['know']
3   [np.nan]                   ['who', 'are', 'you']              [np.nan]
Run Code Online (Sandbox Code Playgroud)

我试过

df['col3'] = [c in …
Run Code Online (Sandbox Code Playgroud)

python list pandas

1
推荐指数
1
解决办法
819
查看次数

从数据框中随机删除行,以便不存在计数超过 N 的行

给定一个df编码主题和项目的数据框,看起来像

topic    item
0        bucket
1        fish
2        car
0        pail
2        truck
3        glove 
Run Code Online (Sandbox Code Playgroud)

哪里有X主题和Y项目,这样如果我查看每个主题的项目数

print(df.groupby(by='topic').agg('count'))

                 item
topic                
0                8568   
1                7539  
2               48700   
3               26036   
4                4190  
5                2153 
...               ...
X-2               328
X-1              5942
X               15871
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点,没有主题的关联项目不超过 N 个?例如,让我们说N = 5000。然后,如果我做一个计数,我会得到

print(df.groupby(by='topic').agg('count'))

                 item
topic                
0                5000   
1                5000  
2                5000   
3                5000   
4                4190  
5                2153 
...               ...
X-2               328
X-1              5000
X                5000
Run Code Online (Sandbox Code Playgroud)

超过 5000 计数的所有内容都减少到 5000 计数,而低于 …

python dataframe pandas

1
推荐指数
1
解决办法
23
查看次数

在Python的最后一个数字处切割字符串

所以我在中间的某个地方有一个日期的字符串,111_Joe_Smith_2010_Assessment我希望将它们截断,使它们变成类似的东西111_Joe_Smith_2010.我认为可行的代码是

reverseString = currentString[::-1]
stripper = re.search('\d', reverseString)
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这并不总能给我正确的结果.它大部分时间都是这样,但不时地,它会输出一个看起来像的字符串111_Joe_Smith_2010_A.

如果有人知道这有什么问题,那将是非常有帮助的!

python regex string

-1
推荐指数
1
解决办法
141
查看次数

标签 统计

python ×7

pandas ×6

dataframe ×2

duplicates ×1

fuzzywuzzy ×1

list ×1

regex ×1

string ×1