python - 我正在尝试将列表输入数据框新列
问题描述
我已将输出保存到列表中,我想创建一个新列并在其中添加值
我可以用 anaconda 成功地做到这一点,但我现在正在尝试 python 和 IDLE 它不起作用
attendance = []
sleep(5)
for x in df1['Login Time']:
s1 = str(x)
s2 = '12:00:00'
s3 = '3:15:00'
s4 = '02:00:00'
FMT = '%H:%M:%S'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
if x <= s4:
attendance.append('Aussi')
elif (str(tdelta)) < s3:
attendance.append('Present')
else:
attendance.append('Check')
df1['Attendance'] = attendance
sleep(5)
df1.to_csv(datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')+".csv",index=False)
我收到错误 A value is trying to be set on a copy of a slice from a DataFrame。尝试改用 .loc[row_indexer,col_indexer] = value
解决方案
问题在于df1['Attendance'] = attendance
尝试这个:
attendance = []
sleep(5)
for x in df1['Login Time']:
s1 = str(x)
s2 = '12:00:00'
s3 = '3:15:00'
s4 = '02:00:00'
FMT = '%H:%M:%S'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
if x <= s4:
attendance.append('Aussi')
elif (str(tdelta)) < s3:
attendance.append('Present')
else:
attendance.append('Check')
#From Here......................................................
attendance_df = pd.Dataframe(attendance,column=['Title']
df1.loc[attendance_df.index,'Login Time']=attendance_df['Title']
#...............................................................
sleep(5)
df1.to_csv(datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')+".csv",index=False)
希望这有效。
推荐阅读
- lex - Make flex handle escaped newlines automatically
- c++ - How to run a non-static function in a new thread in C++
- django - Is it possible to missmatch opening and end tags in xml on purpose?
- c++ - c++17比较string_view和string时的歧义
- java - "where java" Not finding correct java.exe
- python-3.x - Unexpected TypeError: 'NoneType' object is not callable
- javascript - 如何激活:当用户点击输入时关注输入+按钮?
- apache-kafka - 找不到 kafka StoreBuilder 类
- javascript - jqGrid 字符串自定义格式,如日期格式
- node.js - 如何将路由控制从 Node 服务器传递到客户端?