gpt4 book ai didi

python - 我在列中丢失了我的值

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:21 26 4
gpt4 key购买 nike

我使用 pandas 组织了我的数据。然后我像下面这样填写我的程序

import pandas as pd
import numpy as np
df1 = pd.read_table(r'E:\빅데이터 캠퍼스\골목상권 프로파일링 - 서울 열린데이터 광장 3.초기-16년5월분1\17.상권-추정매출\201301-201605\tbsm_trdar_selng.txt\tbsm_trdar_selng_utf8.txt' , sep='|' ,header=None
,dtype = { '0' : pd.np.int})

df1 = df1.replace('201301', int(201301))

df2 = df1[[0 ,1, 2, 3 ,4, 11,12 ,82 ]]

df2_rename = df2.columns = ['STDR_YM_CD', 'TRDAR_CD', 'TRDAR_CD_NM', 'SVC_INDUTY_CD', 'SVC_INDUTY_CD_NM', 'THSMON_SELNG_AMT', 'THSMON_SELNG_CO', 'STOR_CO' ]

print(df2.head(40))

df3_groupby = df2.groupby(['STDR_YM_CD', 'TRDAR_CD' ])
df4_agg = df3_groupby.agg(np.sum)

print(df4_agg.head(30))

当我打印 df2 时,我可以在我的 TRDAR_CD 列中看到 11947 和 11948 值。如下图所示

enter image description here

之后,我使用了 groupby 函数,我在 TRDAR_CD 列中丢失了 11948 个值。您可以在下图中看到这种情况

enter image description here

可能是警告消息中的这个问题??警告消息是 'sys:1: DtypeWarning: 列 (0) 具有混合类型。在导入时指定 dtype 选项或设置 low_memory=False。

请帮帮我

打印(df2.info())是

RangeIndex:1089023个条目,0到1089022

数据列(共8列):

STDR_YM_CD 1089023 非空对象

TRDAR_CD 1089023 非空 int64

TRDAR_CD_NM 1085428 非空对象

SVC_INDUTY_CD 1089023 非空对象

SVC_INDUTY_CD_NM 1089023 非空对象

THSMON_SELNG_AMT 1089023 非空 int64

THSMON_SELNG_CO 1089023 非空 int64

STOR_CO 1089023 非空 int64

数据类型:int64(4)、对象(4)

内存使用:66.5+ MB

最佳答案

MultiIndex被称为第一列和第二列,如果默认情况下第一级有重复项,它会“稀疏化”更高级别的索引,以使控制台输出看起来更容易一些。

您可以通过设置 display.multi_sparseMultiIndex 的第一层显示数据为 False

示例:

df = pd.DataFrame({'A':[1,1,3],
'B':[4,5,6],
'C':[7,8,9]})

df.set_index(['A','B'], inplace=True)

print (df)
C
A B
1 4 7
5 8
3 6 9

#temporary set multi_sparse to False
#http://pandas.pydata.org/pandas-docs/stable/options.html#getting-and-setting-options
with pd.option_context('display.multi_sparse', False):
print (df)
C
A B
1 4 7
1 5 8
3 6 9

通过编辑问题进行编辑:

我认为问题是值 11948 的类型是 string,所以它被省略了。

按文件编辑 1:

您可以通过在 read_csv 中添加参数 usecols 来简化您的解决方案然后通过 GroupBy.sum 聚合:

import pandas as pd
import numpy as np

df2 = pd.read_table(r'tbsm_trdar_selng_utf8.txt' ,
sep='|' ,
header=None ,
usecols=[0 ,1, 2, 3 ,4, 11,12 ,82],
names=['STDR_YM_CD', 'TRDAR_CD', 'TRDAR_CD_NM', 'SVC_INDUTY_CD', 'SVC_INDUTY_CD_NM', 'THSMON_SELNG_AMT', 'THSMON_SELNG_CO', 'STOR_CO'],
dtype = { '0' : int})


df4_agg = df2.groupby(['STDR_YM_CD', 'TRDAR_CD' ]).sum()
print(df4_agg.head(10))
THSMON_SELNG_AMT THSMON_SELNG_CO STOR_CO
STDR_YM_CD TRDAR_CD
201301 11947 1966588856 74798 73
11948 3404215104 89064 116
11949 1078973946 42005 45
11950 1759827974 93245 71
11953 779024380 21042 84
11954 2367130386 94033 128
11956 511840921 23340 33
11957 329738651 15531 50
11958 1255880439 42774 118
11962 1837895919 66692 68

关于python - 我在列中丢失了我的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39951581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com