私信  •  关注

WeNYoBen

WeNYoBen 最近创建的主题
WeNYoBen 最近回复了
4 年前
回复了 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
5 年前
回复了 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
4 年前
回复了 WeNYoBen 创建的主题 » 切片日期时间函数:Python

让我们使用 pd.cut

pd.cut(s.dt.hour,[-0.001,12,18,24],labels=['Morning','Afternoon','Evening'])
5 年前
回复了 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
5 年前
回复了 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
5 年前
回复了 WeNYoBen 创建的主题 » 如何在python中使用带前缀的str.get_dummies?

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

data_df['genres_names'].str.get_dummies().add_prefix('something')
5 年前
回复了 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
5 年前
回复了 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
5 年前
回复了 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()
4 年前
回复了 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)