小编jpp*_*jpp的帖子

pandas系列的.ix索引有什么意义

对于Series对象(让我们称之为s),pandas提供了三种类型的寻址.

s.iloc [] - 用于整数位置寻址;

s.loc [] - 用于索引标签寻址; 和

s.ix [] - 用于整数位置和标签寻址的混合.

pandas对象还直接执行ix寻址.

# play data ...
import string
idx = [i for i in string.uppercase] # A, B, C .. Z
t = pd.Series(range(26), index=idx) # 0, 1, 2 .. 25

# examples ...
t[0]              # --> 0
t['A']            # --> 0
t[['A','M']]      # --> [0, 12]
t['A':'D']        # --> [0, 1, 2, 3]
t.iloc[25]        # --> 25
t.loc['Z']        # --> 25
t.loc[['A','Z']]  # --> [0, 25] …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

高效制作一组元组顺序无关紧要的元组的方法

我想制作一组元组,其中元组的顺序无关紧要.例如 - 如果我要添加的元组是:

[(1,2),(1,3),(2,1)]
Run Code Online (Sandbox Code Playgroud)

它应该像这样输出:

{(1,2),(1,3)}
Run Code Online (Sandbox Code Playgroud)

有没有有效的方法在python中这样做?

python tuples list set python-3.x

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

如何将python datetime.datetime转换为excel序列号

我需要将日期转换为Excel序列号,以用于我正在编写的数据修改脚本.通过在我的OpenOffice Calc工作簿中播放日期,我能够推断出'1-Jan 1899 00:00:00'映射到数字零.

我编写了以下函数来将python datetime对象转换为Excel序列号:

def excel_date(date1):
    temp=dt.datetime.strptime('18990101', '%Y%m%d')
    delta=date1-temp
    total_seconds = delta.days * 86400 + delta.seconds
    return total_seconds
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试一些示例日期时,数字与我在Excel中格式化日期时所获得的数字不同(以及OpenOffice Calc).例如,测试'2009-03-20'在Python中给出3478032000,而excel将序列号呈现为39892.

上面的公式出了什么问题?

*注意:我使用的是Python 2.6.3,因此无法访问datetime.total_seconds()

python excel datetime data-munging

16
推荐指数
3
解决办法
3万
查看次数

使用字典映射数据帧索引

为什么不df.index.map(dict)喜欢的工作df['column_name'].map(dict)

这是尝试使用index.map的一个小例子:

import pandas as pd

df = pd.DataFrame({'one': {'A': 10, 'B': 20, 'C': 30, 'D': 40, 'E': 50}})
map_dict = {'A': 'every', 'B': 'good', 'C': 'boy', 'D': 'does', 'E': 'fine'}
df
'''
    one
A   10
B   20
C   30
D   40
E   50
'''

df['two'] = df.index.map(mapper=map_dict)
Run Code Online (Sandbox Code Playgroud)

这引起了提升 TypeError: 'dict' object is not callable

喂它一个lambda工作:

df['two'] = df.index.map(mapper=(lambda x: map_dict[x])); df
'''
   one    two
A   10  every
B   20   good
C   30    boy
D   40 …
Run Code Online (Sandbox Code Playgroud)

python pandas

16
推荐指数
4
解决办法
2万
查看次数

如何为列表中的每个唯一val添加计数

假设我有一个清单.

temp = ['A', 'B', 'A', 'B', 'A', 'B']
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来加入里面的字符串计数.

预期产出:

['A_1', 'B_1', 'A_2', 'B_2', 'A_3', 'B_3']
Run Code Online (Sandbox Code Playgroud)

我能够通过使用列表解析来解决它,但我正在寻找一种方法,我不必指定列表[1, 1, 2, 2, 3, 3].可能吗?

[j + "_" + str(i) for i, j in zip([1, 1, 2, 2, 3, 3], temp)]
Run Code Online (Sandbox Code Playgroud)

python string counter list defaultdict

16
推荐指数
2
解决办法
1256
查看次数

如何使用列表推导来扩展python中的列表?

我没有Python经验,我经常编写(简化)代码如下:

accumulationList = []
for x in originalList:
    y = doSomething(x)
    accumulationList.append(y)
return accumulationList
Run Code Online (Sandbox Code Playgroud)

然后在我的测试通过后,我重构了

return [doSomething(x) for x in originalList]
Run Code Online (Sandbox Code Playgroud)

但是假设结果有点不同,我的循环看起来像这样:

accumulationList = []
for x in originalList:
    y = doSomething(x)
    accumulationList.extend(y)
return accumulationList
Run Code Online (Sandbox Code Playgroud)

doSomething列表返回一个列表.什么是最恐怖的方式来实现这一目标?显然,之前的列表理解会给出一个列表列表.

python for-loop nested list-comprehension list

15
推荐指数
2
解决办法
5601
查看次数

按照Pandas中的组大小对分组数据进行排序

我的数据集中有两列,col1和col2.我希望按照col1对数据进行分组,然后根据每个组的大小对数据进行排序.也就是说,我想以其大小的升序显示组.

我编写了用于分组和显示数据的代码,如下所示:

grouped_data = df.groupby('col1')
"""code for sorting comes here"""
for name,group in grouped_data:
          print (name)
          print (group)
Run Code Online (Sandbox Code Playgroud)

在显示数据之前,我需要按照组大小对其进行排序,这是我无法做到的.

python python-3.x pandas pandas-groupby

15
推荐指数
2
解决办法
2万
查看次数

如何对列表中其他列分组的列进行求和?

我有一个如下列表.

[['Andrew', '1', '9'], ['Peter', '1', '10'], ['Andrew', '1', '8'], ['Peter', '1', '11'], ['Sam', '4', '9'], ['Andrew', '2', '2']]
Run Code Online (Sandbox Code Playgroud)

我想总结由其他列分组的最后一列.结果是这样的

[['Andrew', '1', '17'], ['Peter', '1', '21'], ['Sam', '4', '9'], ['Andrew', '2', '2']]
Run Code Online (Sandbox Code Playgroud)

这仍然是一个清单.

在实际操作中,我总是想总结由许多其他列分组的最后一列.有没有办法在Python中做到这一点?非常感激.

python list dataframe pandas pandas-groupby

15
推荐指数
5
解决办法
807
查看次数

在Pandas DataFrame中反转列顺序的大O复杂性是什么?

所以假设我在pandas中有一个DataFrame,其中包含am行和n列.我们还要说我想颠倒列的顺序,可以使用以下代码完成:

df_reversed = df[df.columns[::-1]]
Run Code Online (Sandbox Code Playgroud)

这项行动的大O复杂性是什么?我假设这将取决于列数,但它还取决于行数?

python algorithm big-o numpy pandas

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

迭代两个列表的列表理解不能按预期工作

我想迭代两个列表.第一个列表包含一些浏览器用户代理,第二个列表包含这些浏览器的版本.我想只过滤那些版本大于60的用户代理.

这是我的列表理解的样子:

[link for ver in version for link in useragents if ver > 60]
Run Code Online (Sandbox Code Playgroud)

此列表的问题是它多次打印相同的用户代理.我使用zip函数编写了以下函数,它工作正常:

for link, ver in zip(useragents, version):
    if ver > 60:
        # append to list
        print(link)
Run Code Online (Sandbox Code Playgroud)

为什么我的列表理解会返回意外结果?

python for-loop nested list-comprehension list

15
推荐指数
3
解决办法
1886
查看次数