社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  WeNYoBen  »  全部回复
回复总数  14
6 年前
回复了 WeNYoBen 创建的主题 » 如何在Python中打印缺少值的列的名称和缺少值的计数?

我们可以排成一行

[*df.isnull().sum().loc[lambda x : x>0].items()]

对你来说

df['Newvalue']=pd.Series(df.value.values,index=np.arange(len(df))*3)
df
Out[41]: 
   No   A   B  value  Newvalue
0   1  23  36    1.0       1.0
1   2  45  23    1.0       NaN
2   3  34  12    2.0       NaN
3   4  22  76    NaN       1.0
7 年前
回复了 WeNYoBen 创建的主题 » 如何在python中选择相同的日期n年?

使用 strftime

df[df.index.strftime('%m-%d')=='04-17']

你可以查一下 goupby + reindex

g=df.groupby('name')
for x , y in g : 

    y=y.reset_index(drop=True).reindex(range(g.size().max())).fillna({'name':'zzzz'}).fillna(0)
    y.to_csv(x+'.csv')
    print(y)

   name    number  number.1
0  aaaa  123456.0  223456.0
1  aaaa  123456.0  221456.0
2  zzzz       0.0       0.0
   name    number  number.1
0  bbbb  123356.0  228456.0
1  bbbb  123556.0  229456.0
2  zzzz       0.0       0.0
   name  number  number.1
0  cccc  123756    200456
1  cccc  122256    220756
2  cccc  121156    226656
7 年前
回复了 WeNYoBen 创建的主题 » 切片日期时间函数:Python

让我们使用 pd.cut

pd.cut(s.dt.hour,[-0.001,12,18,24],labels=['Morning','Afternoon','Evening'])
7 年前
回复了 WeNYoBen 创建的主题 » 如何在python中生成词频矩阵

这是 get_dummies 问题,为了达到你所需要的,你只需要跟随 reindex

s='He,is,a,good,person,bad,student,hardworking'.split(',')
df.W1.str.get_dummies(sep=' ').reindex(columns=s)
Out[914]: 
   He  is  a  good  person  bad  student  hardworking
0   1   1  1     1       1    0        0            0
1   1   1  0     0       0    1        1            0
2   1   1  0     0       0    0        0            1

数据输入

                    W1               W2
0  He is a good person     Positive Sense
1  He is bad student       Negative Sense
2  He is hardworking       Positive Sense
7 年前
回复了 WeNYoBen 创建的主题 » python:concat 2数据帧,将其名称保留为新列

用支票 keys

pd.concat([df1, df2], keys=['df1', 'df2'],names =['id','index']).reset_index(level=0)
Out[880]: 
        id letter  number
index                    
0      df1      a       1
1      df1      b       2
0      df2      a       1
1      df2      b       2

如果要动态创建关键点

pd.concat({x : y for x,y in enumerate([df1, df2])},names =['id','index']).reset_index(level=0)
Out[879]: 
       id letter  number
index                   
0       0      a       1
1       0      b       2
0       1      a       1
1       1      b       2
7 年前
回复了 WeNYoBen 创建的主题 » 如何在python中使用带前缀的str.get_dummies?

实现这一目标的一个方法是 add_prefix

data_df['genres_names'].str.get_dummies().add_prefix('something')
7 年前
回复了 WeNYoBen 创建的主题 » 如何使用pivot表python创建重复行

这就是为什么 wide_to_long 建立

pd.wide_to_long(df,['wk'],i=['SKU','Ids'],j='value',sep='_').reset_index()
Out[28]: 
    SKU  Ids  value  wk
0    10   20      1   1
1    10   20      2   2
2    10   20      3   3
3    10   20      4   4
4    10   20      5   5
5    10   20      6   6
6    30   40      1   6
7    30   40      2   5
8    30   40      3   4
9    30   40      4   3
10   30   40      5   2
11   30   40      6   1
7 年前
回复了 WeNYoBen 创建的主题 » python pandas str.从多个列提取

IIUC

df['New']=df.apply(','.join,axis=1).str.extract(r'(\d{4})', expand = 
False).fillna('')
df
   field1  field2   New
0  ab1234  ab1234  1234
1  ac1234          1234
2    qw45    rt23      
3  c1234b  cb1234  1234
4      cv  1234dd  1234

在R

prop.table(table(dat$value))

   0    1    2 
0.25 0.50 0.25 

在巨蟒中,麻木

import numpy as np 
u,c=np.unique(df.value,return_counts=True)
pd.Series(c/c.sum(),index=u)
0    0.25
1    0.50
2    0.25
dtype: float64
7 年前
回复了 WeNYoBen 创建的主题 » 水平方向的python字典到csv

假设你 dict 名称为 d

pd.Series(d).to_frame().T
Out[55]: 
  key1 key2 key3
0    1   42  foo
#pd.Series(d).to_frame().T.to_csv()
7 年前
回复了 WeNYoBen 创建的主题 » 如何根据python中的前一行值编辑现有的行值

np.where + shift

df['value']=np.where(df.value.isnull().shift()&df.value.eq(2),0,df.value)
df
Out[593]: 
       date  time  value
0  20141102  1420    0.0
1  20141102  1425    2.0
2  20141103  1430    NaN
3  20141103  1435    NaN
4  20141104  1440    0.0
5  20141104  1445    NaN
6  20141105  1450    NaN
7  20141105  1455    0.0

IIUC,通过使用 cumcount

df['cnt']=df.groupby(0).cumcount()+1
df.sort_values([0,'cnt'],inplace=True)