小编Fab*_*nna的帖子

pandas groupby - 群组中的案例敏感问题

我需要通过名为"Keyword"的列对DataFrame进行分组,其中:

grouped = df.groupby('Keyword')
Run Code Online (Sandbox Code Playgroud)

然后我在搜索每组的大小:

a = grouped.size()
Run Code Online (Sandbox Code Playgroud)

结果如下:

Keyword
ATTORNEY            48
Appraiser           94
Attorney          1437
BASEBOARD            2
BELL PEPPER          1
BULLETIN BOARD       1
Bell Pepper         36
Bell pepper         19
Bulletin Board      20
Bulletin board       3
CANDY              765
CANDy                2
CANdy                1
...                ...
Run Code Online (Sandbox Code Playgroud)

我想避免区分大小写的问题,并为"CANDY,CANDY,CANdy"等单词获得一个独特的组,这些组仅对某些较低或较高的字符有所不同.我试图df['Keyword'].str.lower()在分组之前将此问题设置转义,但它不起作用.任何帮助将非常感谢,谢谢.

python string pandas

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

networkx - 以块的形式读取边缘列表(pandas)

我有一个非常大的网络需要在 Networkx 中读取和分析(大约 5 亿行),存储在 gzip 加权边缘列表(Node1 Node2 权重)中。到目前为止,我尝试用以下方式阅读它:

# Open and Read File
with gzip.open(network,'rb') as fh:
    # Read Weighted Edge List
    G = nx.read_weighted_edgelist(fh, create_using=nx.DiGraph())
Run Code Online (Sandbox Code Playgroud)

但由于它很大,我有一些内存问题。我想知道是否有一种方法可以沿着固定长度的块以“pandas”样式读取文件。感谢您的帮助。

编辑:

这是我的边缘列表文件的一小部分提取(Node1 Node2 Weight):

30879005 5242 11
44608582 2295986 4
24935102 737450 1
42230925 1801294 1
20926179 2332390 1
40959246 1100438 1
3291058 3226104 1
23192021 5818064 1
16328715 7695005 1
11561383 2102983 1
1886716 1378893 2
23192021 5818065 1
2060097 2060091 1
7176482 3222203 2
46586813 1599030 1
35151866 35151866 1 …
Run Code Online (Sandbox Code Playgroud)

python networkx pandas

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

pandas - 将表格转换为方阵

我在data.csv文件中有这个简单的数据框:

I,C,v
a,b,1
b,a,2
e,a,1
e,c,0
b,d,1
a,e,1
b,f,0
Run Code Online (Sandbox Code Playgroud)

我想转动它,然后返回一个方形表(作为矩阵).到目前为止,我已经阅读了数据框并构建了一个数据透视表:

df = pd.read_csv('data.csv')
d = pd.pivot_table(df,index='I',columns='C',values='v')
d.fillna(0,inplace=True)
Run Code Online (Sandbox Code Playgroud)

正确获取:

C  a  b  c  d  e  f
I                  
a  0  1  0  0  1  0
b  2  0  0  1  0  0
e  1  0  0  0  0  0
Run Code Online (Sandbox Code Playgroud)

现在我想返回一个方形表,其中包含行中缺少的列索引,因此生成的表将是:

C  a  b  c  d  e  f
I                  
a  0  1  0  0  1  0
b  2  0  0  1  0  0
c  0  0  0  0  0  0
d …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

pandas - 按列名掩盖数据帧

从这个简单的数据框开始df:

col1,col2
1,3
2,1
3,8
Run Code Online (Sandbox Code Playgroud)

我想mask在列的名称函数中应用布尔值.我知道价值观很容易:

mask = df <= 1

df = df[mask]
Run Code Online (Sandbox Code Playgroud)

返回:

面具:

    col1   col2
0   True  False
1  False   True
2  False  False
Run Code Online (Sandbox Code Playgroud)

DF:

   col1  col2
0     1   NaN
1   NaN     1
2   NaN   NaN
Run Code Online (Sandbox Code Playgroud)

正如所料.现在我想根据列名获得一个布尔掩码,如:

mask = df == df['col_1']
Run Code Online (Sandbox Code Playgroud)

哪个应该返回:

面具

    col1   col2
0   True  False
1   True  False
2   True  False
Run Code Online (Sandbox Code Playgroud)

编辑:

这看起来很奇怪,但我需要这些掩码后来通过列seaborn heatmaps过滤.

python dataframe pandas

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

Pandas:基于包含某些值的字符串有效地对 DataFrame 进行子集化

为了帮助说明我想在这里实现的目标是一个名为的 DataFrame df

column1  column2  
1        foo faa
2        bar car
3        dog dog
4        cat rat
5        foo foo
6        bar cat
7        bird rat
8        cat dog
9        bird foo
10       bar car
Run Code Online (Sandbox Code Playgroud)

我想对 DataFrame 进行子集化 - 条件是如果一个字符串column2包含多个值之一,则行被删除。

对于单个值,这很容易,在本例中为“foo”:

df = df[~df['column2'].str.contains("foo")]

但是假设我想删除 column2 中的字符串包含“cat”或“foo”的所有行。当应用于df上述,这将落5行。

什么是最有效,最pythonic的方法来做到这一点?这可以是函数、多个布尔值或其他我没有想到的形式。

isin 不起作用,因为它需要完全匹配。

注意:我已经编辑了这个问题,因为我第一次犯了一个错误。道歉。

python dataframe pandas

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

熊猫通过与第一列的相关性对列进行排序

我有一个df

          A         B         C         D
A  1.000000  0.202557  0.689214  -.705000
B  0.202557  1.000000  0.038306 -0.113245
C  0.689214  0.038306  1.000000  0.074773
D  -.705000 -0.113245  0.074773  1.000000
Run Code Online (Sandbox Code Playgroud)

我想按与A列的相关性排序,应按正负排序

          A         C        B         D
A  1.000000  0.689214  0.202557 -.705000
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢

python pandas

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

标签 统计

pandas ×6

python ×6

dataframe ×2

networkx ×1

string ×1