Dark1101_ 2021-08-31 19:52 采纳率: 100%
浏览 1498
已结题

Python_pandas关于UserWarning: Boolean Series key will be reindexed to match DataFrame index.的问题

本人python初学者,学数据分析的时候想从数据中提取每个月的半个月的数据信息。 (1-6月)
以下变量分别是:
my_data 我pandas读取csv文件的DataFrame
for循环当中有18个variable,分别是:
提取只含有每个月数据的df : my_data_(1-6)
其中my_data_1_1和my_data_1_2表示1月的上下半月的df以此类推。 因为手动创建变量名称要累死我,我就用尝试用循环做了。

import pandas as pd
my_data = pd.read_csv(xxx)

for i in range(1,7):
names[f'my_data_{i}'] = my_data[my_data['月份'] == i]

names[f'my_data_{i}_1'] = names[f'my_data_{i}'][(my_data['天'] >= 1)&(my_data['天'] <= 15)]

names[f'my_data_{i}_2'] = names[f'my_data_{i}'][(my_data['天'] >= 16)&(my_data['天'] <= 31)]

my_data_1_2

运行报错是这样的:

img

C:\Users\johns\AppData\Local\Temp/ipykernel_13560/887399195.py:8: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
names[f'my_data_{i}1'] = names[f'my_data{i}'][(my_data['天']>=1)&(my_data['天']<=15)]
C:\Users\johns\AppData\Local\Temp/ipykernel_13560/887399195.py:10: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
names[f'my_data_{i}_2'] = names[f'my_data_{i}'][(my_data['天']>=16)&(my_data['天']<=31)]
但是仍然输出了我要的结果,12个(半月)的数据variable都创建完成且数据完整。
我就不太明白为什么会出现这个错误,我两个条件都放进括号里了用了&隔开,而且我单独把月份索引提出来了。

csv中原表格输出是这样的:

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-HGJ 2021-09-01 04:19
    关注

    主要是由于使用布尔数组的键会引起含糊不明确,出现了使用警告信息,虽然不影响计算结果,但是不建议这样使用,应该将布尔过滤条件写成一个mask取值:
    参考代码:

    import pandas as pd
    df=pd.read_excel('t4.xlsx')
    df['天']=pd.to_datetime(df['date']).dt.day
    df['月'] = pd.to_datetime(df['date']).dt.month
    names={}
    for i in range(1,7):
        #names[f'df_{i}'] =df[df['月'] ==i]
        names[f'df_{i}_1'] = df[(df['月'] == i)&(
            df['天'] >= 1) & (df['天'] <= 15)]
        names[f'df_{i}_2'] = df[(df['月'] == i)&(
            df['天'] >= 16) & (df['天'] <= 31)]
    print(names)
    

    如有帮助,请点击采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月9日
  • 已采纳回答 9月1日
  • 创建了问题 8月31日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加