小编Sir*_* S.的帖子

将pandas Dataframe列映射到字典值

我有一个:很多字典.我想将pandas Dataframe列的值映射到字典的键(NOT值).这是我的字典:

dict1={'fruits':('apple','grapes','oranges'),'food':('fish','meat','fibre')}
Run Code Online (Sandbox Code Playgroud)

这里是熊猫系列对象:

df=pd.Series(['fish','apple','meat'])
Run Code Online (Sandbox Code Playgroud)

我想要的所需输出:

0      food
1    fruits
2      food
dtype: object
Run Code Online (Sandbox Code Playgroud)

python dictionary dataframe pandas

7
推荐指数
1
解决办法
3542
查看次数

大熊猫使用附加将数据帧写入镶木地板格式

我试图写一个pandas dataframe以parquet文件格式(在最近的大熊猫版本0.21.0介绍)append模式。但是,该文件不是附加到现有文件,而是被新数据覆盖。我错过了什么?

写语法是

df.to_parquet(path, mode='append')
Run Code Online (Sandbox Code Playgroud)

读取语法是

pd.read_parquet(path)
Run Code Online (Sandbox Code Playgroud)

python apache pandas parquet

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

生成numpy范围内的随机日期

如何在双月的基础上在一系列日期内生成随机日期numpy?我能想到的一种方法是生成两组随机整数数组:

bimonthly1 = np.random.randint(1,15,12)
bimonthly2 = np.random.randint(16,30,12)
Run Code Online (Sandbox Code Playgroud)

然后,我可以生成日期,每个月使用上述两个数组的"日期"值.但是,这将要求我明确传递月份和年份数据.一种解决方案是生成所需的date_range第一个并用上述数组值替换该范围内的"天".但对于大型阵列,这可能不是最好的解决方案.此方法需要对范围的每个元素进行操作.

我将非常感谢有关如何numpy更有效地执行此操作的任何指示.

python arrays datetime numpy pandas

6
推荐指数
1
解决办法
3753
查看次数

pandas groupby 组和子组级别分析

在多列groupby对象上,如何仅访问外列?例如下面,我可以通过:df.get_group(('media', 'entertainment content'))命令访问内列(娱乐内容),我希望也能够访问类似的东西:df.get_group(('media')) 但它抛出一个错误:“ValueError: must supply带有多个分组键的 get_group 元组”

[('media', 'entertainment content'),('media', 'internet media')]

df.get_group(('media', 'entertainment content'))
                                     lasts      vol        prev ticker
industry sub_industry                                                 
media    entertainment content  379.200012  1828139  354.000000  suntv
         entertainment content  420.049988  2675741  404.600006      z

temp.get_group(('media'))
ValueError: must supply a tuple to get_group with multiple grouping keys
Run Code Online (Sandbox Code Playgroud)

dataframe python-2.7 pandas

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

如何初始化多列到现有的熊猫DataFrame

如何在现有熊猫DataFrame对象的单个实例中初始化多个列?我可以这样在实例上初始化单列:

df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]}, dtype='int')
df['c'] = 0
Run Code Online (Sandbox Code Playgroud)

但我不能做类似的事情:

df[['c','d']] = 0 or
df[['c']['d']] = 0
Run Code Online (Sandbox Code Playgroud)

有没有办法可以做到这一点?

python dataframe pandas

5
推荐指数
2
解决办法
3269
查看次数

熊猫用多级列设置索引

考虑以下 pd.DataFrame

df_index = pd.MultiIndex.from_product([['foo','bar'],['one','two','three']])
df = pd.DataFrame(np.random.randint(0,10,size=18, dtype='int').reshape((-1,6)), columns=df_index)

print(df)
                     foo                    bar
     one    two     three   one     two     three
   0    7   3         8       3     6         0
   1    2   5         9       4     3         6
   2    4   2         6       6     4         5
Run Code Online (Sandbox Code Playgroud)

我希望将'foo'其中的所有子索引都设置为索引。我该如何实现?我拼杀'set_index'和pd.IndexSlice,但仍不能得到解决

python numpy multi-index pandas

5
推荐指数
1
解决办法
107
查看次数

熊猫中的 tz_convert 不适用于印度的任何城市

以下命令似乎适用于亚洲的其他位置,但印度的任何位置除外。这里有错误还是我遗漏了什么?这有效:

pd.to_datetime(pd.datetime.now()).tz_localize('US/Pacific').tz_convert('Asia/Hong_Kong')
pd.to_datetime(pd.datetime.now()).tz_localize('US/Pacific').tz_convert('Asia/Karachi'
pd.to_datetime(pd.datetime.now()).tz_localize('US/Pacific').tz_convert('Asia/Dubai')
Run Code Online (Sandbox Code Playgroud)

这不适用于完全相同的格式(如印度的任何位置):

pd.to_datetime(pd.datetime.now()).tz_localize('US/Pacific').tz_convert('Asia/New_Delhi')
Run Code Online (Sandbox Code Playgroud)

抛出以下错误

File "C:\Miniconda\lib\site-packages\pytz\__init__.py", line 180, in timezone
raise UnknownTimeZoneError(zone) UnknownTimeZoneError: 'Asia/New_Delhi'
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

4
推荐指数
1
解决办法
1689
查看次数

在numpy中给定日期周围生成-1/+1天

考虑下面的numpy数组:

import numpy as np
t = np.array(['2016-07-28', '2016-08-25', '2016-09-29', '2016-10-27', '2016-11-17'], dtype='datetime64[D]')
Run Code Online (Sandbox Code Playgroud)

如何为每个数组元素生成前一天和第二天?我想要的输出如下:

array(['2016-07-27', '2016-07-28', '2016-07-29', ..., '2016-11-16',
   '2016-11-17', '2016-11-18'], dtype='datetime64[D]')
Run Code Online (Sandbox Code Playgroud)

我目前的方法是分别生成三个数组(上一个,一天,下一个),然后将它们组合如下:

tt = np.sort(np.append(t1,(t,t2)))
Run Code Online (Sandbox Code Playgroud)

arrays datetime numpy pandas

3
推荐指数
1
解决办法
44
查看次数

从'to_julian_date()'转换为'np.datetime64'

考虑下面的数组

dt = DatetimeIndex(['2016-01-01', '2016-01-01', '2016-01-21', '2016-01-21'], dtype='datetime64[ns]', name=u'date', freq=None)
Run Code Online (Sandbox Code Playgroud)

我转换上面的to_julian_date()dtype

j = dt.to_julian_date()
Float64Index([2457388.5, 2457388.5, 2457408.5, 2457408.5], dtype='float64')
Run Code Online (Sandbox Code Playgroud)

我怎样才能转换j回来dt

我试过了

dt = pd.to_datetime(j, errors = 'coerce')
Run Code Online (Sandbox Code Playgroud)

它转换j回datetime对象,但值不相同,这是输出

DatetimeIndex(['1970-01-01 00:00:00.002457388',
           '1970-01-01 00:00:00.002457388',
           '1970-01-01 00:00:00.002457408',
           '1970-01-01 00:00:00.002457408'],
          dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

检查两个数值是否在numpy(+/-)中具有相同的符号

目前我正在使用numpy.logical_or和numpy.logical_来检查两个数组的元素是否具有相同的符号.想知道是否已经有一个ufunc或更有效的方法来实现这一目标.我现在的解决方案在这里

a = np.array([1,-2,5,7,-11,9])
b = np.array([3,-8,4,81,5,16])
out = np.logical_or(
                    np.logical_and((a < 0),(b < 0)), 
                    np.logical_and((a > 0),(b > 0))
                                             )
Run Code Online (Sandbox Code Playgroud)

编辑//输出

out
Out[51]: array([ True,  True,  True,  True, False,  True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

python numpy

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

将pandas数据框索引重塑为列

考虑下面的pandas Series对象,

index = list('abcdabcdabcd')
df = pd.Series(np.arange(len(index)), index = index)
Run Code Online (Sandbox Code Playgroud)

我想要的输出是

   a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
Run Code Online (Sandbox Code Playgroud)

我对pd.pivot_table和pd.unstack付出了一些努力,而解决方案可能在于正确使用其中之一。我最接近的是

df.reset_index(level = 1).unstack(level = 1)
Run Code Online (Sandbox Code Playgroud)

但这没有给我我想要的输出

//这甚至更接近所需的输出,但是我无法处理索引分组。

df.to_frame().set_index(df1.values, append = True, drop  = False).unstack(level = 0)

     a    b     c     d
0   0.0  NaN   NaN   NaN
1   NaN  1.0   NaN   NaN
2   NaN  NaN   2.0   NaN
3   NaN  NaN   NaN   3.0
4   4.0  NaN   NaN   NaN
5   NaN  5.0 …
Run Code Online (Sandbox Code Playgroud)

python pivot-table dataframe pandas

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

如何仅基于外部索引转置多级熊猫数据帧

下面是我的数据框架,具有两级索引。我希望“仅”将外部索引转置为列。我想要的输出将是2X2数据帧,而不是现在的4X1数据帧。你们任何人能帮忙吗?

        0
0    0  232

     1  3453

1    0  443

     1  3241
Run Code Online (Sandbox Code Playgroud)

python transpose hierarchical-data dataframe pandas

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