我想计算每个值出现在数据帧中的次数.
这是我的数据框 - df:
status
1 N
2 N
3 C
4 N
5 S
6 N
7 N
8 S
9 N
10 N
11 N
12 S
13 N
14 C
15 N
16 N
17 N
18 N
19 S
20 N
Run Code Online (Sandbox Code Playgroud)
我想要计数字典:
恩. counts = {N: 14, C:2, S:4}
我试过df['status']['N']但它给了但keyError也df['status'].value_counts没有用.
import pandas as pd
data={'col1':[1,3,3,1,2,3,2,2]}
df=pd.DataFrame(data,columns=['col1'])
print df
col1
0 1
1 3
2 3
3 1
4 2
5 3
6 2
7 2
Run Code Online (Sandbox Code Playgroud)
我有以下Pandas DataFrame,我想创建另一个列,比较前一行col1,看看它们是否相等.最好的方法是什么?它就像下面的DataFrame.谢谢
col1 match
0 1 False
1 3 False
2 3 True
3 1 False
4 2 False
5 3 False
6 2 False
7 2 True
Run Code Online (Sandbox Code Playgroud) 我有一个大的csv文件,大约600mb,有1100万行,我想创建像枢轴,直方图,图形等统计数据.显然,我只是想正常阅读它:
df = pd.read_csv('Check400_900.csv', sep='\t')
Run Code Online (Sandbox Code Playgroud)
不起作用,所以我发现迭代和chunksize在类似的帖子,所以我用
df = pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000)
Run Code Online (Sandbox Code Playgroud)
一切都很好,我可以举例print df.get_chunk(5) 来说,只搜索整个文件
for chunk in df:
print chunk
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何在整个df中使用下面这些东西,而不仅仅是一个块
plt.plot()
print df.head()
print df.describe()
print df.dtypes
customer_group3 = df.groupby('UserID')
y3 = customer_group.size()
Run Code Online (Sandbox Code Playgroud)
我希望我的问题不那么令人困惑
给定以下形式的方形pandas DataFrame:
a b c
a 1 .5 .3
b .5 1 .4
c .3 .4 1
Run Code Online (Sandbox Code Playgroud)
我怎么才能melt得到上三角形
Row Column Value
a a 1
a b .5
a c .3
b b 1
b c .4
c c 1
#Note the combination a,b is only listed once. There is no b,a listing
Run Code Online (Sandbox Code Playgroud)
我对一个习惯性的熊猫解决方案更感兴趣,一个自定义索引器很容易手工编写...提前感谢您的考虑和响应.
我正在使用xlsxwriter保存pandas DataFrame to_excel.我已经设法格式化我的所有数据(设置列宽,字体大小等),除了更改标题的字体,我找不到这样做的方法.这是我的例子:
import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
data.to_excel(writer, sheet_name='test', index=False)
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10})
header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True})
worksheet.set_column('A:A', None, font_fmt)
worksheet.set_row(0, None, header_fmt)
writer.save()
Run Code Online (Sandbox Code Playgroud)
试图为标题设置格式的倒数第二行什么都不做.
假设我的数据类似于以下内容:
index id name value value2 value3 data1 val5
0 345 name1 1 99 23 3 66
1 12 name2 1 99 23 2 66
5 2 name6 1 99 23 7 66
Run Code Online (Sandbox Code Playgroud)
我们如何使用python在一个命令或几个命令中删除所有列(如value,value2(value3),所有行具有相同值的列)?
考虑到我们有类似的许多列value,value2,value3... value200.
输出:
index id name data1
0 345 name1 3
1 12 name2 2
5 2 name6 7
Run Code Online (Sandbox Code Playgroud) 我正在尝试将列分组并计算另一列上的值计数.
import pandas as pd
dftest = pd.DataFrame({'A':[1,1,1,1,1,1,1,1,1,2,2,2,2,2],
'Amt':[20,20,20,30,30,30,30,40, 40,10, 10, 40,40,40]})
print(dftest)
Run Code Online (Sandbox Code Playgroud)
dftest看起来像
A Amt
0 1 20
1 1 20
2 1 20
3 1 30
4 1 30
5 1 30
6 1 30
7 1 40
8 1 40
9 2 10
10 2 10
11 2 40
12 2 40
13 2 40
Run Code Online (Sandbox Code Playgroud)
执行分组
grouper = dftest.groupby('A')
df_grouped = grouper['Amt'].value_counts()
Run Code Online (Sandbox Code Playgroud)
这使
A Amt
1 30 4
20 3
40 2
2 40 3
10 2 …Run Code Online (Sandbox Code Playgroud) 我的目标是比较两列并添加结果列.R使用ifelse,但我需要知道熊猫的方式.
[R
> head(mau.payment)
log_month user_id install_month payment
1 2013-06 1 2013-04 0
2 2013-06 2 2013-04 0
3 2013-06 3 2013-04 14994
> mau.payment$user.type <-ifelse(mau.payment$install_month == mau.payment$log_month, "install", "existing")
> head(mau.payment)
log_month user_id install_month payment user.type
1 2013-06 1 2013-04 0 existing
2 2013-06 2 2013-04 0 existing
3 2013-06 3 2013-04 14994 existing
4 2013-06 4 2013-04 0 existing
5 2013-06 6 2013-04 0 existing
6 2013-06 7 2013-04 0 existing
Run Code Online (Sandbox Code Playgroud)
熊猫
>>> maupayment
user_id log_month install_month
1 …Run Code Online (Sandbox Code Playgroud) 我不得不这样做几次,我总是感到沮丧.我有一个数据帧:
df = pd.DataFrame([[1, 2, 3, 4], [5, 6, 7, 8]], ['a', 'b'], ['A', 'B', 'C', 'D'])
print df
A B C D
a 1 2 3 4
b 5 6 7 8
Run Code Online (Sandbox Code Playgroud)
我想df变成:
pd.Series([[1, 2, 3, 4], [5, 6, 7, 8]], ['a', 'b'])
a [1, 2, 3, 4]
b [5, 6, 7, 8]
dtype: object
Run Code Online (Sandbox Code Playgroud)
我试过了
df.apply(list, axis=1)
Run Code Online (Sandbox Code Playgroud)
哪个让我回来了 df
这样做的方便/有效方法是什么?
我在熊猫中有这样的数据框:
column1 column2
[a,b,c] 1
[d,e,f] 2
[g,h,i] 3
Run Code Online (Sandbox Code Playgroud)
column1 column2
a 1
b 1
c 1
d 2
e 2
f 2
g 3
h 3
i 3
Run Code Online (Sandbox Code Playgroud)
如何处理这些数据?